bnx2x: fix panic when TX ring is full
authorEric Dumazet <[email protected]>
Wed, 13 Jun 2012 09:45:16 +0000 (09:45 +0000)
committerDavid S. Miller <[email protected]>
Fri, 15 Jun 2012 22:30:15 +0000 (15:30 -0700)
commitbc14786a100cc6a81cd060e8031ec481241b418c
tree344e33a1e1ee80906eb9aaaa339cd3bad257385a
parentd9cb9bd63eb27ac19f26a8547128c053f43a5da8
bnx2x: fix panic when TX ring is full

There is a off by one error in the minimal number of BD in
bnx2x_start_xmit() and bnx2x_tx_int() before stopping/resuming tx queue.

A full size GSO packet, with data included in skb->head really needs
(MAX_SKB_FRAGS + 4) BDs, because of bnx2x_tx_split()

This error triggers if BQL is disabled and heavy TCP transmit traffic
occurs.

bnx2x_tx_split() definitely can be called, remove a wrong comment.

Reported-by: Tomas Hruby <[email protected]>
Signed-off-by: Eric Dumazet <[email protected]>
Cc: Eilon Greenstein <[email protected]>
Cc: Yaniv Rosner <[email protected]>
Cc: Merav Sicron <[email protected]>
Cc: Tom Herbert <[email protected]>
Cc: Robert Evans <[email protected]>
Cc: Willem de Bruijn <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c