From: Douglas Gilbert <dgilbert@interlog.com>
To: SCSI development list <linux-scsi@vger.kernel.org>,
IDE/ATA development list <linux-ide@vger.kernel.org>
Cc: "James.Bottomley@HansenPartnership.com"
<James.Bottomley@HansenPartnership.com>,
jgarzik@redhat.com, Tejun Heo <tj@kernel.org>
Subject: [PATCH] libata SATL: WWN for device id VPD page
Date: Fri, 13 May 2011 23:16:50 -0400 [thread overview]
Message-ID: <4DCDF422.5060109@interlog.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 544 bytes --]
libata implements a SCSI to ATA Translation Layer and
should comply with the SAT (ANSI INCITS 431-2007) and
SAT-2 (ANSI INCITS 465-2010).
Both standards require that if an ATA device supplies
a World Wide Name (WWN) then it should appear in the
corresponding SCSI device identification VPD page.
Changelog:
- add NAA descriptor to the device identification VPD
page for the addressed logical unit. ATA's WWN is
in NAA(5) format.
The attached patch is against lk 2.6.38 .
Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
[-- Attachment #2: libata-scsi_vpd83.patch --]
[-- Type: text/x-patch, Size: 1112 bytes --]
--- linux/drivers/ata/libata-scsi.c 2011-03-16 06:47:24.647997871 -0400
+++ linux/drivers/ata/libata-scsi.c_vpd83a 2011-05-13 19:35:40.601635269 -0400
@@ -2028,12 +2028,29 @@ static unsigned int ata_scsiop_inq_80(st
static unsigned int ata_scsiop_inq_83(struct ata_scsi_args *args, u8 *rbuf)
{
const int sat_model_serial_desc_len = 68;
- int num;
+ int num, k;
+ unsigned char wwn_arr[8];
rbuf[1] = 0x83; /* this page code */
num = 4;
- /* piv=0, assoc=lu, code_set=ACSII, designator=vendor */
+ /* WWN starts at word 108 in IDENTIFY response */
+ ata_id_string(args->id, wwn_arr, 108, 8);
+ /* SPL(SAS-2.1) checks for zeros rather than checking supported bit */
+ for (k = 0; (k < 8) && (0 == wwn_arr[k]); ++k)
+ ;
+ if (k < 8) { /* found non-zero WWN */
+ /* piv=0, assoc=lu, code_set=binary, designator=naa */
+ rbuf[num + 0] = 1;
+ rbuf[num + 1] = 3;
+ rbuf[num + 2] = 0;
+ rbuf[num + 3] = 8;
+ num += 4;
+ memcpy(rbuf + num, wwn_arr, 8);
+ num += 8;
+ }
+
+ /* piv=0, assoc=lu, code_set=ASCII, designator=vendor */
rbuf[num + 0] = 2;
rbuf[num + 3] = ATA_ID_SERNO_LEN;
num += 4;
next reply other threads:[~2011-05-14 3:16 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-14 3:16 Douglas Gilbert [this message]
2011-05-14 3:28 ` [PATCH] libata SATL: WWN for device id VPD page Douglas Gilbert
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=4DCDF422.5060109@interlog.com \
--to=dgilbert@interlog.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=jgarzik@redhat.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=tj@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.