• Eric Dumazet's avatar
    bnx2x: fix panic when TX ring is full · dcf42d8c
    Eric Dumazet authored
    commit bc14786a upstream.
    
    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: default avatarTomas Hruby <thruby@google.com>
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Eilon Greenstein <eilong@broadcom.com>
    Cc: Yaniv Rosner <yanivr@broadcom.com>
    Cc: Merav Sicron <meravs@broadcom.com>
    Cc: Tom Herbert <therbert@google.com>
    Cc: Robert Evans <evansr@google.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    dcf42d8c
bnx2x_cmn.c 92.8 KB