summaryrefslogtreecommitdiffstats
path: root/releases/2.6.38.8/qla2xxx-fix-virtual-port-failing-to-login-after-chip-reset.patch
diff options
context:
space:
mode:
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.patch46
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++;
+ }