On 28.10.2015 23:06, Don Brace wrote: > Reviewed-by: Justin Lindley <justin.lindley@xxxxxxxx> > Reviewed-by: Scott Teel <scott.teel@xxxxxxxx> > Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx> > Signed-off-by: Don Brace <don.brace@xxxxxxxx> > --- > drivers/scsi/hpsa.c | 45 ++++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 40 insertions(+), 5 deletions(-) > > diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c > index 33fd0aa..b2418c3 100644 > --- a/drivers/scsi/hpsa.c > +++ b/drivers/scsi/hpsa.c > @@ -609,7 +609,7 @@ static inline int is_logical_dev_addr_mode(unsigned char scsi3addr[]) > } > > static const char * const raid_label[] = { "0", "4", "1(+0)", "5", "5+1", "6", > - "1(+0)ADM", "UNKNOWN" > + "1(+0)ADM", "UNKNOWN", "PHYS DRV" > }; > #define HPSA_RAID_0 0 > #define HPSA_RAID_4 1 > @@ -618,7 +618,8 @@ static const char * const raid_label[] = { "0", "4", "1(+0)", "5", "5+1", "6", > #define HPSA_RAID_51 4 > #define HPSA_RAID_6 5 /* also used for RAID 60 */ > #define HPSA_RAID_ADM 6 /* also used for RAID 1+0 ADM */ > -#define RAID_UNKNOWN (ARRAY_SIZE(raid_label) - 1) > +#define RAID_UNKNOWN (ARRAY_SIZE(raid_label) - 2) > +#define PHYSICAL_DRIVE (ARRAY_SIZE(raid_label) - 1) RAID_UNKNOWN is used in few other places - raid_level_show for example, shouldn't be that also adapted? -tm > / > > static inline bool is_logical_device(struct hpsa_scsi_dev_t *device) > { > @@ -1144,21 +1145,55 @@ static int hpsa_find_target_lun(struct ctlr_info *h, > static void hpsa_show_dev_msg(const char *level, struct ctlr_info *h, > struct hpsa_scsi_dev_t *dev, char *description) > { > +#define LABEL_SIZE 25 > + char label[LABEL_SIZE]; > + > if (dev == NULL) > return; > > if (h == NULL || h->pdev == NULL || h->scsi_host == NULL) > return; > > + switch (dev->devtype) { > + case TYPE_RAID: > + snprintf(label, LABEL_SIZE, "controller"); > + break; > + case TYPE_ENCLOSURE: > + snprintf(label, LABEL_SIZE, "enclosure"); > + break; > + case TYPE_DISK: > + if (dev->external) > + snprintf(label, LABEL_SIZE, "external"); > + else if (!is_logical_dev_addr_mode(dev->scsi3addr)) > + snprintf(label, LABEL_SIZE, "%s", > + raid_label[PHYSICAL_DRIVE]); > + else > + snprintf(label, LABEL_SIZE, "RAID-%s", > + dev->raid_level > RAID_UNKNOWN ? "?" : > + raid_label[dev->raid_level]); > + break; > + case TYPE_ROM: > + snprintf(label, LABEL_SIZE, "rom"); > + break; > + case TYPE_TAPE: > + snprintf(label, LABEL_SIZE, "tape"); > + break; > + case TYPE_MEDIUM_CHANGER: > + snprintf(label, LABEL_SIZE, "changer"); > + break; > + default: > + snprintf(label, LABEL_SIZE, "UNKNOWN"); > + break; > + } > + > dev_printk(level, &h->pdev->dev, > - "scsi %d:%d:%d:%d: %s %s %.8s %.16s RAID-%s SSDSmartPathCap%c En%c Exp=%d\n", > + "scsi %d:%d:%d:%d: %s %s %.8s %.16s %s SSDSmartPathCap%c En%c Exp=%d\n", > h->scsi_host->host_no, dev->bus, dev->target, dev->lun, > description, > scsi_device_type(dev->devtype), > dev->vendor, > dev->model, > - dev->raid_level > RAID_UNKNOWN ? > - "RAID-?" : raid_label[dev->raid_level], > + label, > dev->offload_config ? '+' : '-', > dev->offload_enabled ? '+' : '-', > dev->expose_device); > > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html