Re: [PATCH 1/2] scsi: scsi_vpd_lun_id(): fix designator priorities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/29/20 6:08 PM, mwilck@xxxxxxxx wrote:
From: Martin Wilck <mwilck@xxxxxxxx>

The current implementation of scsi_vpd_lun_id() uses the designator
length as an implicit measure of priority. This works most of the
time, but not always. For example, some Hitachi storage arrays return
this in VPD 0x83:

VPD INQUIRY: Device Identification page
   Designation descriptor number 1, descriptor length: 24
     designator_type: T10 vendor identification,  code_set: ASCII
     associated with the Addressed logical unit
       vendor id: HITACHI
       vendor specific: 5030C3502025
   Designation descriptor number 2, descriptor length: 6
     designator_type: vendor specific [0x0],  code_set: Binary
     associated with the Target port
       vendor specific: 08 03
   Designation descriptor number 3, descriptor length: 20
     designator_type: NAA,  code_set: Binary
     associated with the Addressed logical unit
       NAA 6, IEEE Company_id: 0x60e8
       Vendor Specific Identifier: 0x7c35000
       Vendor Specific Identifier Extension: 0x30c35000002025
       [0x60060e8007c350000030c35000002025]

The current code would use the first descriptor, because it's longer
than the NAA descriptor. But this is wrong, the kernel is supposed
to prefer NAA descriptors over T10 vendor ID. Designator length
should only be used to compare designators of the same type.

This patch addresses the issue by separating designator priority and
length.

Fixes: 9983bed3907c ("scsi: Add scsi_vpd_lun_id()")
Signed-off-by: Martin Wilck <mwilck@xxxxxxxx>
---
  drivers/scsi/scsi_lib.c | 126 +++++++++++++++++++++++++++-------------
  1 file changed, 86 insertions(+), 40 deletions(-)

Reviewed-by: Hannes Reinecke <hare@xxxxxxx>

Cheers,

Hannes
--
Dr. Hannes Reinecke                Kernel Storage Architect
hare@xxxxxxx                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux