scsi: qla2xxx: Further limit FLASH region write access from SysFS
authorAndrew Vasquez <andrewv@marvell.com>
Tue, 2 Apr 2019 21:24:26 +0000 (14:24 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 4 Apr 2019 03:45:58 +0000 (23:45 -0400)
Recent ISPs have larger and more complex flash-write semantics
(secure-access and signing). The BSG interfaces support these semantics for
all ISPs and is exclusively used by QLogic user-space tools. Limit
flash-write operations to ISPs <= 25xx.

Signed-off-by: Andrew Vasquez <andrewv@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_attr.c

index 93058379d3c8a7115740287a5cdbf0adfef376a1..b2520e49971d4729cac2868fa9d80da0cf38217a 100644 (file)
@@ -430,6 +430,10 @@ qla2x00_sysfs_write_optrom_ctl(struct file *filp, struct kobject *kobj,
                 *      0x000000 -> 0x07ffff -- Boot code.
                 *      0x080000 -> 0x0fffff -- Firmware.
                 *      0x120000 -> 0x12ffff -- VPD and HBA parameters.
+                *
+                * > ISP25xx type boards:
+                *
+                *      None -- should go through BSG.
                 */
                valid = 0;
                if (ha->optrom_size == OPTROM_SIZE_2300 && start == 0)
@@ -437,9 +441,7 @@ qla2x00_sysfs_write_optrom_ctl(struct file *filp, struct kobject *kobj,
                else if (start == (ha->flt_region_boot * 4) ||
                    start == (ha->flt_region_fw * 4))
                        valid = 1;
-               else if (IS_QLA24XX_TYPE(ha) || IS_QLA25XX(ha)
-                       || IS_CNA_CAPABLE(ha) || IS_QLA2031(ha)
-                       || IS_QLA27XX(ha) || IS_QLA28XX(ha))
+               else if (IS_QLA24XX_TYPE(ha) || IS_QLA25XX(ha))
                        valid = 1;
                if (!valid) {
                        ql_log(ql_log_warn, vha, 0x7065,