• C
    gianfar: Fix reported number of sent bytes to BQL · 50ad076b
    Claudiu Manoil 提交于
    Fix the amount of sent bytes reported to BQL by reporting the
    number of bytes on wire in the xmit routine, and recording that
    value for each skb in order to be correctly confirmed on Tx
    confirmation cleanup.
    
    Reporting skb->len to BQL just before exiting xmit is not correct
    due to possible insertions of TOE block and alignment bytes in the
    skb->data, which are being stripped off by the controller before
    transmission on wire.  This led to mismatch of (incorrectly)
    reported bytes to BQL b/w xmit and Tx confirmation, resulting in
    Tx timeout firing, for the h/w tx timestamping acceleration case.
    
    There's no easy way to obtain the number of bytes on wire in the Tx
    confirmation routine, so skb->cb is used to convey that information
    from xmit to Tx confirmation, for now (as proposed by Eric). Revived
    the currently unused GFAR_CB() construct for that purpose.
    Signed-off-by: NClaudiu Manoil <claudiu.manoil@freescale.com>
    
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    50ad076b
gianfar.h 39.0 KB