• Soren Brinkmann's avatar
    net: macb: Fix race between HW and driver · c8ea5a22
    Soren Brinkmann authored
    Under "heavy" RX load, the driver cannot handle the descriptors fast
    enough. In detail, when a descriptor is consumed, its used flag is
    cleared and once the RX budget is consumed all descriptors with a
    cleared used flag are prepared to receive more data. Under load though,
    the HW may constantly receive more data and use those descriptors with a
    cleared used flag before they are actually prepared for next usage.
    
    The head and tail pointers into the RX-ring should always be valid and
    we can omit clearing and checking of the used flag.
    Signed-off-by: default avatarSoren Brinkmann <soren.brinkmann@xilinx.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c8ea5a22
macb.c 50.4 KB