aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/qlcnic/qlcnic_main.c
diff options
context:
space:
mode:
authorAnirban Chakraborty <anirban.chakraborty@qlogic.com>2011-06-22 02:52:18 +0000
committerDavid S. Miller <davem@davemloft.net>2011-06-24 01:17:06 -0700
commit287e38aa1adee01f63bb28e270afd3f738a6ab8c (patch)
tree8fa64b88e4bfe860b134274133debc2abdfdc108 /drivers/net/qlcnic/qlcnic_main.c
parentqlcnic: Add capability to take FW dump deterministically (diff)
downloadlinux-dev-287e38aa1adee01f63bb28e270afd3f738a6ab8c.tar.xz
linux-dev-287e38aa1adee01f63bb28e270afd3f738a6ab8c.zip
qlcnic: Remove holding api lock while taking the dump
With the change in logic for taking FW dump across multiple drivers, there is no need to hold onto the api lock anymore in the fw dump path. Instead use rtnl_lock() to synchronize the access to FW dump data structs. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/qlcnic/qlcnic_main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index 0ddbb80eefc7..a656a12e24d1 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -2846,13 +2846,15 @@ skip_ack_check:
set_bit(__QLCNIC_START_FW, &adapter->state);
QLCDB(adapter, DRV, "Restarting fw\n");
qlcnic_idc_debug_info(adapter, 0);
- QLCDB(adapter, DRV, "Take FW dump\n");
- qlcnic_dump_fw(adapter);
- adapter->flags &= ~QLCNIC_FW_RESET_OWNER;
}
qlcnic_api_unlock(adapter);
+ rtnl_lock();
+ QLCDB(adapter, DRV, "Take FW dump\n");
+ qlcnic_dump_fw(adapter);
+ adapter->flags &= ~QLCNIC_FW_RESET_OWNER;
+ rtnl_unlock();
if (!adapter->nic_ops->start_firmware(adapter)) {
qlcnic_schedule_work(adapter, qlcnic_attach_work, 0);
adapter->fw_wait_cnt = 0;