@@ -69,6 +69,25 @@ static ssize_t pm8001_ctl_mpi_interface_rev_show(struct device *cdev,
69
69
static
70
70
DEVICE_ATTR (interface_rev , S_IRUGO , pm8001_ctl_mpi_interface_rev_show , NULL) ;
71
71
72
+ /**
73
+ * controller_fatal_error_show - check controller is under fatal err
74
+ * @cdev: pointer to embedded class device
75
+ * @buf: the buffer returned
76
+ *
77
+ * A sysfs 'read only' shost attribute.
78
+ */
79
+ static ssize_t controller_fatal_error_show (struct device * cdev ,
80
+ struct device_attribute * attr , char * buf )
81
+ {
82
+ struct Scsi_Host * shost = class_to_shost (cdev );
83
+ struct sas_ha_struct * sha = SHOST_TO_SAS_HA (shost );
84
+ struct pm8001_hba_info * pm8001_ha = sha -> lldd_ha ;
85
+
86
+ return snprintf (buf , PAGE_SIZE , "%d\n" ,
87
+ pm8001_ha -> controller_fatal_error );
88
+ }
89
+ static DEVICE_ATTR_RO (controller_fatal_error );
90
+
72
91
/**
73
92
* pm8001_ctl_fw_version_show - firmware version
74
93
* @cdev: pointer to embedded class device
@@ -804,6 +823,7 @@ static DEVICE_ATTR(update_fw, S_IRUGO|S_IWUSR|S_IWGRP,
804
823
pm8001_show_update_fw , pm8001_store_update_fw ) ;
805
824
struct device_attribute * pm8001_host_attrs [] = {
806
825
& dev_attr_interface_rev ,
826
+ & dev_attr_controller_fatal_error ,
807
827
& dev_attr_fw_version ,
808
828
& dev_attr_update_fw ,
809
829
& dev_attr_aap_log ,
0 commit comments