I noticed that the reported ID is different when building dmidecode in 32-bit mode. The reason is that %lx isn't a valid format to print a 64-bit integer. It works by accident on 64-bit systems because types "long integer" and "long long integer" are the same there, but on 32-bit systems, only the latter can actually store a 64-bit value.
Change the format to %llx so that it works on 32-bit systems too. Signed-off-by: Jean Delvare <jdelv...@suse.de> Fixes: 90d1323a8d14 ("dmioem: Decode HPE OEM Record 242") Cc: Jerry Hoemann <jerry.hoem...@hpe.com> --- dmioem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- dmidecode.orig/dmioem.c +++ dmidecode/dmioem.c @@ -1230,7 +1230,7 @@ static int dmi_decode_hp(const struct dm if (!(opt.flags & FLAG_QUIET)) pr_attr("Associated Handle", "0x%04X", WORD(data + 0x4)); dmi_hp_242_hdd_type(data[0x06]); - pr_attr("ID", "%lx", QWORD(data + 0x07)); + pr_attr("ID", "%llx", QWORD(data + 0x07)); if (h->length < 0x3E) pr_attr("Capacity", "%u MB", DWORD(data + 0x0F)); else -- Jean Delvare SUSE L3 Support