[SCSI] qla2xxx: Don't cache VPD data for newer ISPs.
authorAndrew Vasquez <andrew.vasquez@qlogic.com>
Tue, 24 Mar 2009 16:08:17 +0000 (09:08 -0700)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Fri, 3 Apr 2009 14:22:52 +0000 (09:22 -0500)
As updates will occur using low-level option-rom manipulation
routines.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/qla2xxx/qla_attr.c
drivers/scsi/qla2xxx/qla_def.h

index 79bf751..15573f6 100644 (file)
@@ -96,7 +96,9 @@ qla2x00_sysfs_read_nvram(struct kobject *kobj,
        if (!capable(CAP_SYS_ADMIN))
                return 0;
 
-       /* Read NVRAM data from cache. */
+       if (IS_NOCACHE_VPD_TYPE(ha))
+               ha->isp_ops->read_optrom(vha, ha->vpd, ha->flt_region_nvram << 2,
+                   ha->nvram_size);
        return memory_read_from_buffer(buf, count, &off, ha->nvram,
                                        ha->nvram_size);
 }
@@ -380,7 +382,9 @@ qla2x00_sysfs_read_vpd(struct kobject *kobj,
        if (!capable(CAP_SYS_ADMIN))
                return 0;
 
-       /* Read NVRAM data from cache. */
+       if (IS_NOCACHE_VPD_TYPE(ha))
+               ha->isp_ops->read_optrom(vha, ha->vpd, ha->flt_region_vpd << 2,
+                   ha->vpd_size);
        return memory_read_from_buffer(buf, count, &off, ha->vpd, ha->vpd_size);
 }
 
index e3d4d48..714ee67 100644 (file)
@@ -2343,6 +2343,7 @@ struct qla_hw_data {
 #define IS_NOPOLLING_TYPE(ha)  ((IS_QLA25XX(ha) || IS_QLA81XX(ha)) && \
                                (ha)->flags.msix_enabled)
 #define IS_FAC_REQUIRED(ha)    (IS_QLA81XX(ha))
+#define IS_NOCACHE_VPD_TYPE(ha)        (IS_QLA81XX(ha))
 
 #define IS_IIDMA_CAPABLE(ha)    ((ha)->device_type & DT_IIDMA)
 #define IS_FWI2_CAPABLE(ha)     ((ha)->device_type & DT_FWI2)