hpsa: allow lockup detected to be viewed via sysfs
authorStephen Cameron <stephenmcameron@gmail.com>
Thu, 23 Apr 2015 14:32:22 +0000 (09:32 -0500)
committerJames Bottomley <JBottomley@Odin.com>
Sun, 31 May 2015 18:24:49 +0000 (11:24 -0700)
expose a detected lockup via sysfs

Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Reviewed-by: Kevin Barnett <kevin.barnett@pmcs.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Reviewed-by: Hannes Reinecke <hare@Suse.de>
Signed-off-by: Don Brace <don.brace@pmcs.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/hpsa.c

index 0c4751c0d1445f14be7412fdf8ca2604f43cdecd..3a978d34190bd892b8d027b6bd2090af3d4422dc 100644 (file)
@@ -351,6 +351,20 @@ static int check_for_busy(struct ctlr_info *h, struct CommandList *c)
        return 1;
 }
 
+static u32 lockup_detected(struct ctlr_info *h);
+static ssize_t host_show_lockup_detected(struct device *dev,
+               struct device_attribute *attr, char *buf)
+{
+       int ld;
+       struct ctlr_info *h;
+       struct Scsi_Host *shost = class_to_shost(dev);
+
+       h = shost_to_hba(shost);
+       ld = lockup_detected(h);
+
+       return sprintf(buf, "ld=%d\n", ld);
+}
+
 static ssize_t host_store_hp_ssd_smart_path_status(struct device *dev,
                                         struct device_attribute *attr,
                                         const char *buf, size_t count)
@@ -698,12 +712,15 @@ static DEVICE_ATTR(transport_mode, S_IRUGO,
        host_show_transport_mode, NULL);
 static DEVICE_ATTR(resettable, S_IRUGO,
        host_show_resettable, NULL);
+static DEVICE_ATTR(lockup_detected, S_IRUGO,
+       host_show_lockup_detected, NULL);
 
 static struct device_attribute *hpsa_sdev_attrs[] = {
        &dev_attr_raid_level,
        &dev_attr_lunid,
        &dev_attr_unique_id,
        &dev_attr_hp_ssd_smart_path_enabled,
+       &dev_attr_lockup_detected,
        NULL,
 };