diff options
| -rw-r--r-- | drivers/firmware/dmi_scan.c | 7 |
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); |
