Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7914d004 authored by Andrew Vasquez's avatar Andrew Vasquez Committed by James Bottomley
Browse files

[SCSI] qla2xxx: Create an VPD sysfs entry for supported ISPs only.

parent 88729e53
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -294,9 +294,6 @@ qla2x00_sysfs_read_vpd(struct kobject *kobj, char *buf, loff_t off,
	if (!capable(CAP_SYS_ADMIN) || off != 0)
		return 0;

	if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha))
		return -ENOTSUPP;

	/* Read NVRAM. */
	spin_lock_irqsave(&ha->hardware_lock, flags);
	ha->isp_ops.read_nvram(ha, (uint8_t *)buf, ha->vpd_base, ha->vpd_size);
@@ -316,9 +313,6 @@ qla2x00_sysfs_write_vpd(struct kobject *kobj, char *buf, loff_t off,
	if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->vpd_size)
		return 0;

	if (!IS_QLA24XX(ha) && !IS_QLA54XX(ha))
		return -ENOTSUPP;

	/* Write NVRAM. */
	spin_lock_irqsave(&ha->hardware_lock, flags);
	ha->isp_ops.write_nvram(ha, (uint8_t *)buf, ha->vpd_base, count);
@@ -395,11 +389,13 @@ qla2x00_alloc_sysfs_attr(scsi_qla_host_t *ha)
	sysfs_create_bin_file(&host->shost_gendev.kobj, &sysfs_optrom_attr);
	sysfs_create_bin_file(&host->shost_gendev.kobj,
	    &sysfs_optrom_ctl_attr);
	sysfs_create_bin_file(&host->shost_gendev.kobj, &sysfs_vpd_attr);
	if (IS_QLA24XX(ha) || IS_QLA54XX(ha))
	if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
		sysfs_create_bin_file(&host->shost_gendev.kobj,
		    &sysfs_vpd_attr);
		sysfs_create_bin_file(&host->shost_gendev.kobj,
		    &sysfs_sfp_attr);
	}
}

void
qla2x00_free_sysfs_attr(scsi_qla_host_t *ha)
@@ -411,10 +407,12 @@ qla2x00_free_sysfs_attr(scsi_qla_host_t *ha)
	sysfs_remove_bin_file(&host->shost_gendev.kobj, &sysfs_optrom_attr);
	sysfs_remove_bin_file(&host->shost_gendev.kobj,
	    &sysfs_optrom_ctl_attr);
	sysfs_remove_bin_file(&host->shost_gendev.kobj, &sysfs_vpd_attr);
	if (IS_QLA24XX(ha) || IS_QLA54XX(ha))
	if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
		sysfs_remove_bin_file(&host->shost_gendev.kobj,
		    &sysfs_vpd_attr);
		sysfs_remove_bin_file(&host->shost_gendev.kobj,
		    &sysfs_sfp_attr);
	}

	if (ha->beacon_blink_led == 1)
		ha->isp_ops.beacon_off(ha);