]> www.infradead.org Git - users/jedix/linux-maple.git/commit
bnx2x: avoid soft lockup in bnx2x_poll()
authorEric Dumazet <edumazet@google.com>
Tue, 8 Dec 2015 13:54:40 +0000 (05:54 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 8 Jul 2016 02:28:37 +0000 (19:28 -0700)
commiteb089e30e0a806a88725df076472c7251e8aea35
tree6bc16fb9be30117da888fc862c051c8651bce09e
parent4fc5278534657d330ce1dc4ff5d627d28e0d7c77
bnx2x: avoid soft lockup in bnx2x_poll()

Under heavy TX load, bnx2x_poll() can loop forever and trigger
soft lockup bugs.

A napi poll handler must yield after one TX completion round,
risk of livelock is too high otherwise.

Bug is very easy to trigger using a debug build, and udp flood, because
of added cpu cycles in TX completion, and we do not receive enough
packets to break the loop.

Reported-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Ariel Elior <ariel.elior@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Orabug: 23718192
Signed-off-by: Manjunath Govindashetty <manjunath.govindashetty@oracle.com>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c