qlcnic: Fix mailbox completion handling during spurious interrupt
authorRajesh Borundia <rajesh.borundia@qlogic.com>
Tue, 8 Mar 2016 07:39:58 +0000 (02:39 -0500)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 11 Jul 2016 03:07:03 +0000 (23:07 -0400)
commit5284ee1e9da2f8f78b5b800109ef4c436c58876d
tree3967a6bba1f6f413acea18b1e8ac247f3a67d838
parentfa565f5389b3886d3b28a8c12ad7ee8511098ca3
qlcnic: Fix mailbox completion handling during spurious interrupt

[ Upstream commit 819bfe764dceec2f6b4551768453f374b4c60443 ]

o While the driver is in the middle of a MB completion processing
and it receives a spurious MB interrupt, it is mistaken as a good MB
completion interrupt leading to premature completion of the next MB
request. Fix the driver to guard against this by checking the current
state of MB processing and ignore the spurious interrupt.
Also added a stats counter to record this condition.

Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c