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