37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
From: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
|
|
Date: Wed, 25 Apr 2012 01:46:39 +0000
|
|
Subject: [PATCH 47/58] be2net: Fix traffic stall INTx mode
|
|
|
|
commit af311fe31015e2b27bd65e22fc103230fb3a78b7 upstream.
|
|
|
|
EQ is getting armed wrongly in INTx mode as INTx interrupt is taking
|
|
some time to deassert. This can cause another interrupt while NAPI is
|
|
scheduled and scheduling a NAPI in interrupt does not take effect.
|
|
This causes interrupt to be missed and traffic stalls. Fixing this by
|
|
preventing wrong arming of EQ.
|
|
|
|
Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/ethernet/emulex/benet/be_main.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
|
|
index 34b8ad2..915b95e 100644
|
|
--- a/drivers/net/ethernet/emulex/benet/be_main.c
|
|
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
|
|
@@ -1563,7 +1563,9 @@ static int event_handle(struct be_eq_obj *eqo)
|
|
if (!num)
|
|
rearm = true;
|
|
|
|
- be_eq_notify(eqo->adapter, eqo->q.id, rearm, true, num);
|
|
+ if (num || msix_enabled(eqo->adapter))
|
|
+ be_eq_notify(eqo->adapter, eqo->q.id, rearm, true, num);
|
|
+
|
|
if (num)
|
|
napi_schedule(&eqo->napi);
|
|
|
|
--
|
|
1.7.10
|
|
|