aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx
diff options
context:
space:
mode:
authorSaurav Kashyap <saurav.kashyap@qlogic.com>2011-05-10 14:18:18 -0400
committerJames Bottomley <jbottomley@parallels.com>2011-05-17 03:27:32 -0400
commitcefcaba67ab97fb756b3a6af5139c94d861b660d (patch)
treee27b047a4ff737a43ba06a7e77a47d8f78540195 /drivers/scsi/qla2xxx
parent9f40682e2857a3c2ddb80a87b185af3c6a708346 (diff)
[SCSI] qla2xxx: Fix virtual port failing to login after chip reset.
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> Cc: stable@kernel.org Signed-off-by: James Bottomley <jbottomley@parallels.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 0ca66645e10c..7168e7f24437 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -3623,7 +3623,8 @@ qla2x00_timer(scsi_qla_host_t *vha)
3623 if (!pci_channel_offline(ha->pdev)) 3623 if (!pci_channel_offline(ha->pdev))
3624 pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w); 3624 pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w);
3625 3625
3626 if (IS_QLA82XX(ha)) { 3626 /* Make sure qla82xx_watchdog is run only for physical port */
3627 if (!vha->vp_idx && IS_QLA82XX(ha)) {
3627 if (test_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags)) 3628 if (test_bit(ISP_QUIESCE_NEEDED, &vha->dpc_flags))
3628 start_dpc++; 3629 start_dpc++;
3629 qla82xx_watchdog(vha); 3630 qla82xx_watchdog(vha);
@@ -3704,8 +3705,8 @@ qla2x00_timer(scsi_qla_host_t *vha)
3704 atomic_read(&vha->loop_down_timer))); 3705 atomic_read(&vha->loop_down_timer)));
3705 } 3706 }
3706 3707
3707 /* Check if beacon LED needs to be blinked */ 3708 /* Check if beacon LED needs to be blinked for physical host only */
3708 if (ha->beacon_blink_led == 1) { 3709 if (!vha->vp_idx && (ha->beacon_blink_led == 1)) {
3709 set_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags); 3710 set_bit(BEACON_BLINK_NEEDED, &vha->dpc_flags);
3710 start_dpc++; 3711 start_dpc++;
3711 } 3712 }