|
@@ -809,6 +809,16 @@ qla2x00_optrom_fw_version_show(struct device *dev,
|
|
ha->fw_revision[3]);
|
|
ha->fw_revision[3]);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static ssize_t
|
|
|
|
+qla2x00_total_isp_aborts_show(struct device *dev,
|
|
|
|
+ struct device_attribute *attr, char *buf)
|
|
|
|
+{
|
|
|
|
+ scsi_qla_host_t *ha = shost_priv(class_to_shost(dev));
|
|
|
|
+
|
|
|
|
+ return snprintf(buf, PAGE_SIZE, "%d\n",
|
|
|
|
+ ha->qla_stats.total_isp_aborts);
|
|
|
|
+}
|
|
|
|
+
|
|
static DEVICE_ATTR(driver_version, S_IRUGO, qla2x00_drvr_version_show, NULL);
|
|
static DEVICE_ATTR(driver_version, S_IRUGO, qla2x00_drvr_version_show, NULL);
|
|
static DEVICE_ATTR(fw_version, S_IRUGO, qla2x00_fw_version_show, NULL);
|
|
static DEVICE_ATTR(fw_version, S_IRUGO, qla2x00_fw_version_show, NULL);
|
|
static DEVICE_ATTR(serial_num, S_IRUGO, qla2x00_serial_num_show, NULL);
|
|
static DEVICE_ATTR(serial_num, S_IRUGO, qla2x00_serial_num_show, NULL);
|
|
@@ -831,6 +841,8 @@ static DEVICE_ATTR(optrom_fcode_version, S_IRUGO,
|
|
qla2x00_optrom_fcode_version_show, NULL);
|
|
qla2x00_optrom_fcode_version_show, NULL);
|
|
static DEVICE_ATTR(optrom_fw_version, S_IRUGO, qla2x00_optrom_fw_version_show,
|
|
static DEVICE_ATTR(optrom_fw_version, S_IRUGO, qla2x00_optrom_fw_version_show,
|
|
NULL);
|
|
NULL);
|
|
|
|
+static DEVICE_ATTR(total_isp_aborts, S_IRUGO, qla2x00_total_isp_aborts_show,
|
|
|
|
+ NULL);
|
|
|
|
|
|
struct device_attribute *qla2x00_host_attrs[] = {
|
|
struct device_attribute *qla2x00_host_attrs[] = {
|
|
&dev_attr_driver_version,
|
|
&dev_attr_driver_version,
|
|
@@ -849,6 +861,7 @@ struct device_attribute *qla2x00_host_attrs[] = {
|
|
&dev_attr_optrom_efi_version,
|
|
&dev_attr_optrom_efi_version,
|
|
&dev_attr_optrom_fcode_version,
|
|
&dev_attr_optrom_fcode_version,
|
|
&dev_attr_optrom_fw_version,
|
|
&dev_attr_optrom_fw_version,
|
|
|
|
+ &dev_attr_total_isp_aborts,
|
|
NULL,
|
|
NULL,
|
|
};
|
|
};
|
|
|
|
|