On Fri, May 06, 2016 at 10:35:07AM +0200, Hannes Reinecke wrote: > Some arrays / HBAs will only present T-10 vendor IDs, so we > should be decoding them, too. > > Suggested-by: Paul Mackerras <paulus@xxxxxxxxxx> > Signed-off-by: Hannes Reinecke <hare@xxxxxxxx> > --- > drivers/scsi/scsi_lib.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c > index b920c5d..a6158f8 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -3064,6 +3064,7 @@ int scsi_vpd_lun_id(struct scsi_device *sdev, char *id, size_t id_len) > * - EUI-64 based 12-byte > * - NAA IEEE Registered > * - NAA IEEE Extended > + * - T10 Vendor ID > * as longer descriptors reduce the likelyhood > * of identification clashes. > */ > @@ -3082,6 +3083,21 @@ int scsi_vpd_lun_id(struct scsi_device *sdev, char *id, size_t id_len) > goto next_desig; > > switch (d[1] & 0xf) { > + case 0x1: > + /* T-10 Vendor ID */ > + if (cur_id_size > d[3]) > + break; > + /* Prefer anything */ > + if (cur_id_type > 0x01) > + break; This doesn't work as desired because cur_id_type is initialized to 0xff. The test needs to be: + if (cur_id_type > 0x01 && cur_id_type != 0xff) + break; With that change it works (and you could put my tested-by on it). Thanks, Paul. -- 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