aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_attr.c
diff options
context:
space:
mode:
authorSawan Chandak <sawan.chandak@qlogic.com>2013-08-27 01:37:51 -0400
committerJames Bottomley <JBottomley@Parallels.com>2013-09-03 10:28:07 -0400
commit8c2cf7d4e387d003259488522523807f25576427 (patch)
tree00e13a0c8ed29489b612b8c142d32f5b3a15acfb /drivers/scsi/qla2xxx/qla_attr.c
parent353d9449b74a8c528ae490dfa9139043627ed5fd (diff)
[SCSI] qla2xxx: Add a new interface to update versions.
On any Adapter when we flash through FC/FCoE without card reset option it still shows the Running FW version in Flashed FW version. This new interface will be used by API to instruct the driver to update its cache versions. Signed-off-by: Sawan Chandak <sawan.chandak@qlogic.com> Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_attr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 85aad4a0b281..b1d32c4da44c 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -590,7 +590,7 @@ qla2x00_sysfs_write_reset(struct file *filp, struct kobject *kobj,
590 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); 590 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
591 int type; 591 int type;
592 uint32_t idc_control; 592 uint32_t idc_control;
593 593 uint8_t *tmp_data = NULL;
594 if (off != 0) 594 if (off != 0)
595 return -EINVAL; 595 return -EINVAL;
596 596
@@ -687,7 +687,19 @@ qla2x00_sysfs_write_reset(struct file *filp, struct kobject *kobj,
687 __qla83xx_set_idc_control(vha, idc_control); 687 __qla83xx_set_idc_control(vha, idc_control);
688 qla83xx_idc_unlock(vha, 0); 688 qla83xx_idc_unlock(vha, 0);
689 break; 689 break;
690 690 case 0x20261:
691 ql_dbg(ql_dbg_user, vha, 0x70e0,
692 "Updating cache versions without reset ");
693
694 tmp_data = vmalloc(256);
695 if (!tmp_data) {
696 ql_log(ql_log_warn, vha, 0x70e1,
697 "Unable to allocate memory for VPD information update.\n");
698 return -ENOMEM;
699 }
700 ha->isp_ops->get_flash_version(vha, tmp_data);
701 vfree(tmp_data);
702 break;
691 } 703 }
692 return count; 704 return count;
693} 705}