Re: [PATCH 2/2] libata-scsi: do not return t10 designator if drive has WWN

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

 



Well, udev uses its own `ata_id` (which issues IDENTIFY DEVICE through
ATA PASS-THROUGH) though.

Anyway I expected the reasoning you gave and I can't really argue with
you. It's just personally I still prefer a cleaner SATL implementation
(considering Linux is open source and can be deemed as some sort of
reference), so I gave it a go.

Not that SAT requires the DI VPD return only one desingator / LU name though.

On 7 July 2016 at 18:56, Hannes Reinecke <hare@xxxxxxx> wrote:
> On 07/07/2016 12:12 AM, tom.ty89@xxxxxxxxx wrote:
>> From: Tom Yan <tom.ty89@xxxxxxxxx>
>>
>> SAT (as of sat4r05f.pdf) only requires the t10 designator if the
>> drive does not support/have WWN. Besides, we already have the ATA
>> information VPD.
>>
>> Signed-off-by: Tom Yan <tom.ty89@xxxxxxxxx>
>>
>> diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
>> index 9f478ad..84b3d42 100644
>> --- a/drivers/ata/libata-scsi.c
>> +++ b/drivers/ata/libata-scsi.c
>> @@ -2210,21 +2210,6 @@ static unsigned int ata_scsiop_inq_83(struct ata_scsi_args *args, u8 *rbuf)
>>       rbuf[1] = 0x83;                 /* this page code */
>>       num = 4;
>>
>> -     /* SAT defined lu model and serial numbers descriptor */
>> -     /* piv=0, assoc=lu, code_set=ACSII, designator=t10 vendor id */
>> -     rbuf[num + 0] = 2;
>> -     rbuf[num + 1] = 1;
>> -     rbuf[num + 3] = sat_model_serial_desc_len;
>> -     num += 4;
>> -     memcpy(rbuf + num, "ATA     ", 8);
>> -     num += 8;
>> -     ata_id_string(args->id, (unsigned char *) rbuf + num, ATA_ID_PROD,
>> -                   ATA_ID_PROD_LEN);
>> -     num += ATA_ID_PROD_LEN;
>> -     ata_id_string(args->id, (unsigned char *) rbuf + num, ATA_ID_SERNO,
>> -                   ATA_ID_SERNO_LEN);
>> -     num += ATA_ID_SERNO_LEN;
>> -
>>       if (ata_id_has_wwn(args->id)) {
>>               /* SAT defined lu world wide name */
>>               /* piv=0, assoc=lu, code_set=binary, designator=NAA */
>> @@ -2236,6 +2221,23 @@ static unsigned int ata_scsiop_inq_83(struct ata_scsi_args *args, u8 *rbuf)
>>                             ATA_ID_WWN, ATA_ID_WWN_LEN);
>>               num += ATA_ID_WWN_LEN;
>>       }
>> +     else {
>> +             /* SAT defined lu model and serial numbers descriptor */
>> +             /* piv=0, assoc=lu, code_set=ACSII, designator=t10 vendor id */
>> +             rbuf[num + 0] = 2;
>> +             rbuf[num + 1] = 1;
>> +             rbuf[num + 3] = sat_model_serial_desc_len;
>> +             num += 4;
>> +             memcpy(rbuf + num, "ATA     ", 8);
>> +             num += 8;
>> +             ata_id_string(args->id, (unsigned char *) rbuf + num, ATA_ID_PROD,
>> +                           ATA_ID_PROD_LEN);
>> +             num += ATA_ID_PROD_LEN;
>> +             ata_id_string(args->id, (unsigned char *) rbuf + num, ATA_ID_SERNO,
>> +                           ATA_ID_SERNO_LEN);
>> +             num += ATA_ID_SERNO_LEN;
>> +     }
>> +
>>       rbuf[3] = num - 4;    /* page len (assume less than 256 bytes) */
>>       return 0;
>>  }
>>
> Nope.
> We cannot go about and remove VPD descriptors.
> Existing systems might rely on the VPD attribute to be present (think of
> udev persistent symlinks), and the system will refuse to boot.
> NACK.
>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke                Teamlead Storage & Networking
> hare@xxxxxxx                                   +49 911 74053 688
> SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
> GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
> HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux