Blame 0007-dmidecode-Document-how-the-UUID-fields-are-interpret.patch

Anton Arapov 48d35d
From 72fa3909cfabe8822e2b8709e5d324008f55022a Mon Sep 17 00:00:00 2001
Anton Arapov 48d35d
From: Jean Delvare <jdelvare@suse.de>
Anton Arapov 48d35d
Date: Tue, 29 Jan 2019 14:11:42 +0100
Anton Arapov 48d35d
Subject: [PATCH 07/18] dmidecode: Document how the UUID fields are interpreted
Anton Arapov 48d35d
Anton Arapov 48d35d
There has always been a lot of confusion about the byte order of UUID
Anton Arapov 48d35d
fields. While dmidecode is doing "the right thing", documenting it
Anton Arapov 48d35d
can't hurt.
Anton Arapov 48d35d
Anton Arapov 48d35d
This should address bug #55510:
Anton Arapov 48d35d
https://savannah.nongnu.org/bugs/index.php?55510
Anton Arapov 48d35d
Anton Arapov 48d35d
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Anton Arapov 48d35d
---
Anton Arapov 48d35d
 man/dmidecode.8 | 14 ++++++++++++++
Anton Arapov 48d35d
 1 file changed, 14 insertions(+)
Anton Arapov 48d35d
Anton Arapov 48d35d
diff --git a/man/dmidecode.8 b/man/dmidecode.8
Anton Arapov 48d35d
index 33f7d33..52100a8 100644
Anton Arapov 48d35d
--- a/man/dmidecode.8
Anton Arapov 48d35d
+++ b/man/dmidecode.8
Anton Arapov 48d35d
@@ -256,6 +256,20 @@ It is crafted to hard-code the table address at offset 0x20.
Anton Arapov 48d35d
 .IP \(bu "\w'\(bu'u+1n"
Anton Arapov 48d35d
 The DMI table is located at offset 0x20.
Anton Arapov 48d35d
 
Anton Arapov 48d35d
+.SH UUID FORMAT
Anton Arapov 48d35d
+There is some ambiguity about how to interpret the UUID fields prior to SMBIOS
Anton Arapov 48d35d
+specification version 2.6. There was no mention of byte swapping, and RFC 4122
Anton Arapov 48d35d
+says that no byte swapping should be applied by default. However, SMBIOS
Anton Arapov 48d35d
+specification version 2.6 (and later) explicitly states that the first 3 fields
Anton Arapov 48d35d
+of the UUID should be read as little-endian numbers (byte-swapped).
Anton Arapov 48d35d
+Furthermore, it implies that the same was already true for older versions of
Anton Arapov 48d35d
+the specification, even though it was not mentioned. In practice, many hardware
Anton Arapov 48d35d
+vendors were not byte-swapping the UUID. So, in order to preserve
Anton Arapov 48d35d
+compatibility, it was decided to interpret the UUID fields according to RFC
Anton Arapov 48d35d
+4122 (no byte swapping) when the SMBIOS version is older than 2.6, and to
Anton Arapov 48d35d
+interpret the first 3 fields as little-endian (byte-swapped) when the SMBIOS
Anton Arapov 48d35d
+version is 2.6 or later. The Linux kernel follows the same logic.
Anton Arapov 48d35d
+
Anton Arapov 48d35d
 .SH FILES
Anton Arapov 48d35d
 .I /dev/mem
Anton Arapov 48d35d
 .br
Anton Arapov 48d35d
-- 
Anton Arapov 48d35d
2.24.0
Anton Arapov 48d35d