dm0 / rpms / systemd

Forked from rpms/systemd 5 years ago
Clone
b457f3f
From eaef7c52907fc0cc2aede0c9bd1ada15112bd93f Mon Sep 17 00:00:00 2001
b457f3f
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
b457f3f
Date: Wed, 22 Jul 2015 00:23:47 -0400
b457f3f
Subject: [PATCH] ata_id: unreverse WWN identifier
b457f3f
b457f3f
An endianness conversion was lost in 6024a6e302bad6bcf073fa84a41a6123305dc845.
b457f3f
Restore it. Now ata_id and scsi_id output match.
b457f3f
b457f3f
https://bugzilla.redhat.com/show_bug.cgi?id=1227503
b457f3f
(cherry picked from commit 01f61d331bb5038f0c877ac03c54333328b6ea28)
b457f3f
---
b457f3f
 src/udev/ata_id/ata_id.c | 14 ++++++++++++--
b457f3f
 1 file changed, 12 insertions(+), 2 deletions(-)
b457f3f
b457f3f
diff --git a/src/udev/ata_id/ata_id.c b/src/udev/ata_id/ata_id.c
b457f3f
index b6f28c6f53..4adec44960 100644
b457f3f
--- a/src/udev/ata_id/ata_id.c
b457f3f
+++ b/src/udev/ata_id/ata_id.c
b457f3f
@@ -638,10 +638,20 @@ int main(int argc, char *argv[])
b457f3f
                  * All other values are reserved.
b457f3f
                  */
b457f3f
                 word = identify.wyde[108];
b457f3f
-                if ((word & 0xf000) == 0x5000)
b457f3f
+                if ((word & 0xf000) == 0x5000) {
b457f3f
+                        uint64_t wwwn;
b457f3f
+
b457f3f
+                        wwwn   = identify.wyde[108];
b457f3f
+                        wwwn <<= 16;
b457f3f
+                        wwwn  |= identify.wyde[109];
b457f3f
+                        wwwn <<= 16;
b457f3f
+                        wwwn  |= identify.wyde[110];
b457f3f
+                        wwwn <<= 16;
b457f3f
+                        wwwn  |= identify.wyde[111];
b457f3f
                         printf("ID_WWN=0x%1$" PRIx64 "\n"
b457f3f
                                "ID_WWN_WITH_EXTENSION=0x%1$" PRIx64 "\n",
b457f3f
-                               identify.octa[108/4]);
b457f3f
+                               wwwn);
b457f3f
+                }
b457f3f
 
b457f3f
                 /* from Linux's include/linux/ata.h */
b457f3f
                 if (identify.wyde[0] == 0x848a ||