|
|
9ae3a8 |
From e67d424de7c9f4ab359757195e8d3319c03b70a0 Mon Sep 17 00:00:00 2001
|
|
|
9ae3a8 |
From: John Snow <jsnow@redhat.com>
|
|
|
9ae3a8 |
Date: Mon, 8 Sep 2014 22:34:25 +0200
|
|
|
9ae3a8 |
Subject: [PATCH 01/20] ide: Add wwn support to IDE-ATAPI drive
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Message-id: <1410215665-27240-2-git-send-email-jsnow@redhat.com>
|
|
|
9ae3a8 |
Patchwork-id: 60913
|
|
|
9ae3a8 |
O-Subject: [RHEL7.1 qemu-kvm PATCH] ide: Add wwn support to IDE-ATAPI drive
|
|
|
9ae3a8 |
Bugzilla: 1131316
|
|
|
9ae3a8 |
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Fam Zheng <famz@redhat.com>
|
|
|
9ae3a8 |
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Although it is possible to specify the wwn
|
|
|
9ae3a8 |
property for cdrom devices on the command line,
|
|
|
9ae3a8 |
the underlying driver fails to relay this information
|
|
|
9ae3a8 |
to the guest operating system via IDENTIFY.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
This is a simple patch to correct that.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
See ATA8-ACS, Table 22 parts 5, 6, and 9.
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: John Snow <jsnow@redhat.com>
|
|
|
9ae3a8 |
Reviewed-by: Fam Zheng <famz@redhat.com>
|
|
|
9ae3a8 |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
9ae3a8 |
(cherry picked from commit c5fe97e359bf03db9a005433092f25d27d57398f)
|
|
|
9ae3a8 |
Signed-off-by: John Snow <jsnow@redhat.com>
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
hw/ide/core.c | 14 ++++++++++++++
|
|
|
9ae3a8 |
1 file changed, 14 insertions(+)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9ae3a8 |
---
|
|
|
9ae3a8 |
hw/ide/core.c | 14 ++++++++++++++
|
|
|
9ae3a8 |
1 files changed, 14 insertions(+), 0 deletions(-)
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
diff --git a/hw/ide/core.c b/hw/ide/core.c
|
|
|
9ae3a8 |
index a2947a9..98128fb 100644
|
|
|
9ae3a8 |
--- a/hw/ide/core.c
|
|
|
9ae3a8 |
+++ b/hw/ide/core.c
|
|
|
9ae3a8 |
@@ -230,9 +230,23 @@ static void ide_atapi_identify(IDEState *s)
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
|
|
|
9ae3a8 |
put_le16(p + 80, 0x1e); /* support up to ATA/ATAPI-4 */
|
|
|
9ae3a8 |
+ if (s->wwn) {
|
|
|
9ae3a8 |
+ put_le16(p + 84, (1 << 8)); /* supports WWN for words 108-111 */
|
|
|
9ae3a8 |
+ put_le16(p + 87, (1 << 8)); /* WWN enabled */
|
|
|
9ae3a8 |
+ }
|
|
|
9ae3a8 |
+
|
|
|
9ae3a8 |
#ifdef USE_DMA_CDROM
|
|
|
9ae3a8 |
put_le16(p + 88, 0x3f | (1 << 13)); /* udma5 set and supported */
|
|
|
9ae3a8 |
#endif
|
|
|
9ae3a8 |
+
|
|
|
9ae3a8 |
+ if (s->wwn) {
|
|
|
9ae3a8 |
+ /* LE 16-bit words 111-108 contain 64-bit World Wide Name */
|
|
|
9ae3a8 |
+ put_le16(p + 108, s->wwn >> 48);
|
|
|
9ae3a8 |
+ put_le16(p + 109, s->wwn >> 32);
|
|
|
9ae3a8 |
+ put_le16(p + 110, s->wwn >> 16);
|
|
|
9ae3a8 |
+ put_le16(p + 111, s->wwn);
|
|
|
9ae3a8 |
+ }
|
|
|
9ae3a8 |
+
|
|
|
9ae3a8 |
memcpy(s->identify_data, p, sizeof(s->identify_data));
|
|
|
9ae3a8 |
s->identify_set = 1;
|
|
|
9ae3a8 |
}
|
|
|
9ae3a8 |
--
|
|
|
9ae3a8 |
1.7.1
|
|
|
9ae3a8 |
|