bnx2x: avoid soft lockup in bnx2x_poll()
authorEric Dumazet <edumazet@google.com>
Tue, 8 Dec 2015 13:54:40 +0000 (05:54 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Dec 2015 03:54:57 +0000 (22:54 -0500)
commit4d6acb62d2db5c1cc533c9a0b6e418ef9f63642e
treebbcb7ba4b5817c858fe41873c776e3500a8717e7
parent46c749eac979c0bf280f760971367e9babe4d05f
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>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c