aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/firmware/dmi_scan.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 5e0b770fdae5..ac1ce4a73edf 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -501,12 +501,12 @@ static int __init dmi_present(const u8 *buf)
501 switch (smbios_ver) { 501 switch (smbios_ver) {
502 case 0x021F: 502 case 0x021F:
503 case 0x0221: 503 case 0x0221:
504 pr_debug("SMBIOS version fixup(2.%d->2.%d)\n", 504 pr_debug("SMBIOS version fixup (2.%d->2.%d)\n",
505 smbios_ver & 0xFF, 3); 505 smbios_ver & 0xFF, 3);
506 smbios_ver = 0x0203; 506 smbios_ver = 0x0203;
507 break; 507 break;
508 case 0x0233: 508 case 0x0233:
509 pr_debug("SMBIOS version fixup(2.%d->2.%d)\n", 51, 6); 509 pr_debug("SMBIOS version fixup (2.%d->2.%d)\n", 51, 6);
510 smbios_ver = 0x0206; 510 smbios_ver = 0x0206;
511 break; 511 break;
512 } 512 }
@@ -554,8 +554,7 @@ static int __init dmi_smbios3_present(const u8 *buf)
554{ 554{
555 if (memcmp(buf, "_SM3_", 5) == 0 && 555 if (memcmp(buf, "_SM3_", 5) == 0 &&
556 buf[6] < 32 && dmi_checksum(buf, buf[6])) { 556 buf[6] < 32 && dmi_checksum(buf, buf[6])) {
557 dmi_ver = get_unaligned_be32(buf + 6); 557 dmi_ver = get_unaligned_be32(buf + 6) & 0xFFFFFF;
558 dmi_ver &= 0xFFFFFF;
559 dmi_num = 0; /* No longer specified */ 558 dmi_num = 0; /* No longer specified */
560 dmi_len = get_unaligned_le32(buf + 12); 559 dmi_len = get_unaligned_le32(buf + 12);
561 dmi_base = get_unaligned_le64(buf + 16); 560 dmi_base = get_unaligned_le64(buf + 16);