be2net: fix INTx ISR for interrupt behaviour on BE2
authorSathya Perla <sathya.perla@emulex.com>
Tue, 27 Nov 2012 19:50:02 +0000 (19:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Nov 2012 16:35:08 +0000 (11:35 -0500)
commite49cc34f7ac30304ef0563d2517f6c5f86525220
tree2be3b6844b70634bb1853fe6e247d8533c155464
parentf33e716ffd65949c5bf7cfbc4e8f7e63fb6e064b
be2net: fix INTx ISR for interrupt behaviour on BE2

On BE2 chip, an interrupt may be raised even when EQ is in un-armed state.
As a result be_intx()::events_get() and be_poll:events_get() can race and
notify an EQ wrongly.

Fix this by counting events only in be_poll(). Commit 0b545a629 fixes
the same issue in the MSI-x path.

But, on Lancer, INTx can be de-asserted only by notifying num evts. This
is not an issue as the above BE2 behavior doesn't exist/has never been
seen on Lancer.

Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_main.c