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 <[email protected]>
> Signed-off-by: Hannes Reinecke <[email protected]>
> ---
>  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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to