diff options
author | Pratik Pujar <pratik.pujar@qlogic.com> | 2013-10-18 12:22:30 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-18 13:42:19 -0400 |
commit | 891e71b1bc7a09c4bceb1a11e5529f55a379a4c7 (patch) | |
tree | f067c87ce70937f824bff8b8feb5d1a6c8fe9249 /drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | |
parent | 710a1a498f22e10dc86c520dd04fb83a19b08771 (diff) |
qlcnic: Firmware dump collection when auto recovery is disabled.
o Allow collecting the firmware dump of halted firmware when auto
recovery is disabled.
Signed-off-by: Pratik Pujar <pratik.pujar@qlogic.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index 55e8b2350241..51959726369f 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | |||
@@ -3353,6 +3353,8 @@ done: | |||
3353 | static int | 3353 | static int |
3354 | qlcnic_check_health(struct qlcnic_adapter *adapter) | 3354 | qlcnic_check_health(struct qlcnic_adapter *adapter) |
3355 | { | 3355 | { |
3356 | struct qlcnic_hardware_context *ahw = adapter->ahw; | ||
3357 | struct qlcnic_fw_dump *fw_dump = &ahw->fw_dump; | ||
3356 | u32 state = 0, heartbeat; | 3358 | u32 state = 0, heartbeat; |
3357 | u32 peg_status; | 3359 | u32 peg_status; |
3358 | int err = 0; | 3360 | int err = 0; |
@@ -3377,7 +3379,7 @@ qlcnic_check_health(struct qlcnic_adapter *adapter) | |||
3377 | if (adapter->need_fw_reset) | 3379 | if (adapter->need_fw_reset) |
3378 | goto detach; | 3380 | goto detach; |
3379 | 3381 | ||
3380 | if (adapter->ahw->reset_context && qlcnic_auto_fw_reset) | 3382 | if (ahw->reset_context && qlcnic_auto_fw_reset) |
3381 | qlcnic_reset_hw_context(adapter); | 3383 | qlcnic_reset_hw_context(adapter); |
3382 | 3384 | ||
3383 | return 0; | 3385 | return 0; |
@@ -3420,6 +3422,9 @@ detach: | |||
3420 | 3422 | ||
3421 | qlcnic_schedule_work(adapter, qlcnic_detach_work, 0); | 3423 | qlcnic_schedule_work(adapter, qlcnic_detach_work, 0); |
3422 | QLCDB(adapter, DRV, "fw recovery scheduled.\n"); | 3424 | QLCDB(adapter, DRV, "fw recovery scheduled.\n"); |
3425 | } else if (!qlcnic_auto_fw_reset && fw_dump->enable && | ||
3426 | adapter->flags & QLCNIC_FW_RESET_OWNER) { | ||
3427 | qlcnic_dump_fw(adapter); | ||
3423 | } | 3428 | } |
3424 | 3429 | ||
3425 | return 1; | 3430 | return 1; |