From: Jeff Garzik <jgarzik@pobox.com>
To: dougg@torque.net
Cc: Chris Paulson-Ellis <chris@edesix.com>,
linux-ide@vger.kernel.org,
SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: libata SCSI page 0x83 query
Date: Tue, 21 Mar 2006 20:38:20 -0500 [thread overview]
Message-ID: <4420AA8C.5050602@pobox.com> (raw)
In-Reply-To: <440CC86D.7060600@torque.net>
Douglas Gilbert wrote:
> Douglas Gilbert wrote:
>
>>Jeff Garzik wrote:
>>
>>
>>>Chris Paulson-Ellis wrote:
>>>
>>>
>>>
>>>>Hi,
>>>>
>>>>I have a problem with udev persistent device naming for SATA drives
>>>>that is caused by the libata implementation of the page 0x83 SCSI
>>>>device identifier query. See this thead from hotplug-devel:
>>>>
>>>>http://marc.theaimsgroup.com/?t=113518947900002&r=1&w=2
>>>>
>>>>I can work around the problem using /etc/scsi_id.config or udev rules
>>>>(see the thread), but here is a patch to fix the problem at source.
>>>>What do you think?
>>>>
>>>>Regards,
>>>>Chris.
>>>>
>>>>--- drivers/scsi/libata-scsi.c.orig 2005-12-22 23:23:55.000000000
>>>>+0000
>>>>+++ drivers/scsi/libata-scsi.c 2005-12-22 23:56:14.000000000 +0000
>>>>@@ -1532,16 +1532,13 @@
>>>> return 0;
>>>>}
>>>>
>>>>-static const char *inq_83_str = "Linux ATA-SCSI simulator";
>>>>-
>>>>/**
>>>>* ata_scsiop_inq_83 - Simulate INQUIRY EVPD page 83, device identity
>>>>* @args: device IDENTIFY data / SCSI command of interest.
>>>>* @rbuf: Response buffer, to which simulated SCSI cmd output is
>>>>sent.
>>>>* @buflen: Response buffer length.
>>>>*
>>>>- * Returns device identification. Currently hardcoded to
>>>>- * return "Linux ATA-SCSI simulator".
>>>>+ * Returns ATA device serial number (as for page 80).
>>>>*
>>>>* LOCKING:
>>>>* spin_lock_irqsave(host_set lock)
>>>>@@ -1551,13 +1548,14 @@
>>>> unsigned int buflen)
>>>>{
>>>> rbuf[1] = 0x83; /* this page code */
>>>>- rbuf[3] = 4 + strlen(inq_83_str); /* page len */
>>>>+ rbuf[3] = 4 + ATA_SERNO_LEN; /* page len */
>>>>
>>>> /* our one and only identification descriptor (vendor-specific) */
>>>>- if (buflen > (strlen(inq_83_str) + 4 + 4 - 1)) {
>>>>+ if (buflen > (ATA_SERNO_LEN + 4 + 4 - 1)) {
>>>> rbuf[4 + 0] = 2; /* code set: ASCII */
>>>>- rbuf[4 + 3] = strlen(inq_83_str);
>>>>- memcpy(rbuf + 4 + 4, inq_83_str, strlen(inq_83_str));
>>>>+ rbuf[4 + 3] = ATA_SERNO_LEN;
>>>>+ ata_dev_id_string(args->id, (unsigned char *) rbuf + 4
>>>>+ 4,
>>>>+ ATA_ID_SERNO_OFS, ATA_SERNO_LEN);
>>>
>>>
>>>Douglas Gilbert has an improved patch along these lines...
>
>
> Oops, a minor documentation malfunction with that patch.
> Here is a second attempt ...
>
> I assume that is a prompt to roll another version
> of that VPD patch, this time against lk 2.6.16-rc5
> as my git tree is unavailable.
>
> Changelog:
> - make existing libata VPD device identification page (0x83)
> supply the ATA serial number in the libata "vendor
> specific" designator (from Chris Paulson-Ellis)
> - add a "t10 vendor id based" designator as defined in
> SAT rev 08 (section 10.3.4.2.3) that supplies ATA
> model and serial numbers
> - make the libata VPD page 0x83 more extensible (for
> adding more designators in the future).
> - rename EVPD to VPD in various places. Enable Vital
> Product Data (EVPD) is a bit in the INQUIRY cdb.
>
> Signed-off-by: Douglas Gilbert <dougg@torque.net>
after further thought and a spec consult... applied.
prev parent reply other threads:[~2006-03-22 1:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-23 0:27 libata SCSI page 0x83 query Chris Paulson-Ellis
2006-03-06 20:12 ` Jeff Garzik
2006-03-06 23:29 ` Douglas Gilbert
2006-03-06 23:40 ` Douglas Gilbert
2006-03-22 1:38 ` Jeff Garzik [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4420AA8C.5050602@pobox.com \
--to=jgarzik@pobox.com \
--cc=chris@edesix.com \
--cc=dougg@torque.net \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.