aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/firmware/dmi_scan.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 5ebb6ceeabfc..97b1616aa391 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -499,18 +499,19 @@ static int __init dmi_present(const u8 *buf)
499 buf += 16; 499 buf += 16;
500 500
501 if (memcmp(buf, "_DMI_", 5) == 0 && dmi_checksum(buf, 15)) { 501 if (memcmp(buf, "_DMI_", 5) == 0 && dmi_checksum(buf, 15)) {
502 if (smbios_ver)
503 dmi_ver = smbios_ver;
504 else
505 dmi_ver = (buf[14] & 0xF0) << 4 | (buf[14] & 0x0F);
502 dmi_num = get_unaligned_le16(buf + 12); 506 dmi_num = get_unaligned_le16(buf + 12);
503 dmi_len = get_unaligned_le16(buf + 6); 507 dmi_len = get_unaligned_le16(buf + 6);
504 dmi_base = get_unaligned_le32(buf + 8); 508 dmi_base = get_unaligned_le32(buf + 8);
505 509
506 if (dmi_walk_early(dmi_decode) == 0) { 510 if (dmi_walk_early(dmi_decode) == 0) {
507 if (smbios_ver) { 511 if (smbios_ver) {
508 dmi_ver = smbios_ver;
509 pr_info("SMBIOS %d.%d present.\n", 512 pr_info("SMBIOS %d.%d present.\n",
510 dmi_ver >> 8, dmi_ver & 0xFF); 513 dmi_ver >> 8, dmi_ver & 0xFF);
511 } else { 514 } else {
512 dmi_ver = (buf[14] & 0xF0) << 4 |
513 (buf[14] & 0x0F);
514 pr_info("Legacy DMI %d.%d present.\n", 515 pr_info("Legacy DMI %d.%d present.\n",
515 dmi_ver >> 8, dmi_ver & 0xFF); 516 dmi_ver >> 8, dmi_ver & 0xFF);
516 } 517 }