diff options
Diffstat (limited to 'releases/2.6.38.8/qla2xxx-fix-virtual-port-failing-to-login-after-chip-reset.patch')
-rw-r--r-- | releases/2.6.38.8/qla2xxx-fix-virtual-port-failing-to-login-after-chip-reset.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/releases/2.6.38.8/qla2xxx-fix-virtual-port-failing-to-login-after-chip-reset.patch b/releases/2.6.38.8/qla2xxx-fix-virtual-port-failing-to-login-after-chip-reset.patch new file mode 100644 index 0000000000..0bab893127 --- /dev/null +++ b/releases/2.6.38.8/qla2xxx-fix-virtual-port-failing-to-login-after-chip-reset.patch @@ -0,0 +1,46 @@ +From cefcaba67ab97fb756b3a6af5139c94d861b660d Mon Sep 17 00:00:00 2001 +From: Saurav Kashyap <saurav.kashyap@qlogic.com> +Date: Tue, 10 May 2011 11:18:18 -0700 +Subject: [SCSI] qla2xxx: Fix virtual port failing to login after chip reset. + +From: Saurav Kashyap <saurav.kashyap@qlogic.com> + +commit cefcaba67ab97fb756b3a6af5139c94d861b660d upstream. + +This patch ensures qla82xx_watchdog is not being run for the vport. It also +makes sure that beacon ON is not done for the vport, as it will lead to the +waking up of the dpc thread again and again. + +Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> +Signed-off-by: Madhuranath Iyengar <Madhu.Iyengar@qlogic.com> +Signed-off-by: James Bottomley <jbottomley@parallels.com> +Signed-off-by: James Bottomley <James.Bottomley@suse.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/scsi/qla2xxx/qla_os.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/scsi/qla2xxx/qla_os.c ++++ b/drivers/scsi/qla2xxx/qla_os.c +@@ -3608,7 +3608,8 @@ qla2x00_timer(scsi_qla_host_t *vha) + if (!pci_channel_offline(ha->pdev)) + pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w); + +- if (IS_QLA82XX(ha)) { ++ /* Make sure qla82xx_watchdog is run only for physical port */ ++ if (!vha->vp_idx && IS_QLA82XX(ha)) { + if (test_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags)) + start_dpc++; + qla82xx_watchdog(vha); +@@ -3679,8 +3680,8 @@ qla2x00_timer(scsi_qla_host_t *vha) + atomic_read(&vha->loop_down_timer))); + } + +- /* Check if beacon LED needs to be blinked */ +- if (ha->beacon_blink_led == 1) { ++ /* Check if beacon LED needs to be blinked for physical host only */ ++ if (!vha->vp_idx && (ha->beacon_blink_led == 1)) { + set_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags); + start_dpc++; + } |