RE: [PATCH net v2] be2net: call napi_disable() for all event queues
From: Sathya Perla <hidden>
Date: 2013-11-27 10:08:53
-----Original Message-----
From: Ivan Vecera [mailto:ivecera@redhat.com]
The recent be2net commit 6384a4d (adds a support for busy polling)
introduces a regression that results in kernel crash. It incorrectly
modified be_close() so napi_disable() is called only for the first queue.
This breaks a correct pairing of napi_enable/_disable for the rest
of event queues and causes a crash in subsequent be_open() call.
v2: Applied suggestions from Sathya
Fixes: 6384a4d ("be2net: add support for ndo_busy_poll")
Cc: Sathya Perla <redacted>
Cc: Subbu Seetharaman <redacted>
Cc: Ajit Khaparde <redacted>
Signed-off-by: Ivan Vecera <ivecera@redhat.com>Acked-by: Sathya Perla <redacted>
quoted hunk ↗ jump to hunk
--- drivers/net/ethernet/emulex/benet/be_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/drivers/net/ethernet/emulex/benet/be_main.cb/drivers/net/ethernet/emulex/benet/be_main.c index 78a0e85..fee64bf 100644--- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c@@ -2658,8 +2658,8 @@ static int be_close(struct net_device *netdev) be_roce_dev_close(adapter); - for_all_evt_queues(adapter, eqo, i) { - if (adapter->flags & BE_FLAGS_NAPI_ENABLED) { + if (adapter->flags & BE_FLAGS_NAPI_ENABLED) { + for_all_evt_queues(adapter, eqo, i) { napi_disable(&eqo->napi); be_disable_busy_poll(eqo); } --1.8.3.2