فهرست منبع

be2net: Fix traffic stall INTx mode

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>
Padmanabh Ratnakar 13 سال پیش
والد
کامیت
af311fe310
1فایلهای تغییر یافته به همراه3 افزوده شده و 1 حذف شده
  1. 3 1
      drivers/net/ethernet/emulex/benet/be_main.c

+ 3 - 1
drivers/net/ethernet/emulex/benet/be_main.c

@@ -1571,7 +1571,9 @@ static int event_handle(struct be_eq_obj *eqo)
 	if (!num)
 	if (!num)
 		rearm = true;
 		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)
 	if (num)
 		napi_schedule(&eqo->napi);
 		napi_schedule(&eqo->napi);