diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-08 15:18:45 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-08 15:18:45 -0500 |
commit | 436950a65d0f0b1a391e3f0dc8e2bcb3e3895f07 (patch) | |
tree | d8253c4054b95b349141fa824be6d1010be36c0f | |
parent | 4054f64c937b1be46e41cbdfa61954be6f811252 (diff) | |
parent | ff4319dc7cd58c92b389960e375038335d157a60 (diff) |
Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
Pull dmi fix from Jean Delvare.
* 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
firmware: dmi_scan: Fix UUID endianness for SMBIOS >= 2.6
-rw-r--r-- | drivers/firmware/dmi_scan.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index ac1ce4a73edf..0e08e665f715 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c | |||
@@ -521,6 +521,7 @@ static int __init dmi_present(const u8 *buf) | |||
521 | dmi_ver = smbios_ver; | 521 | dmi_ver = smbios_ver; |
522 | else | 522 | else |
523 | dmi_ver = (buf[14] & 0xF0) << 4 | (buf[14] & 0x0F); | 523 | dmi_ver = (buf[14] & 0xF0) << 4 | (buf[14] & 0x0F); |
524 | dmi_ver <<= 8; | ||
524 | dmi_num = get_unaligned_le16(buf + 12); | 525 | dmi_num = get_unaligned_le16(buf + 12); |
525 | dmi_len = get_unaligned_le16(buf + 6); | 526 | dmi_len = get_unaligned_le16(buf + 6); |
526 | dmi_base = get_unaligned_le32(buf + 8); | 527 | dmi_base = get_unaligned_le32(buf + 8); |
@@ -528,15 +529,14 @@ static int __init dmi_present(const u8 *buf) | |||
528 | if (dmi_walk_early(dmi_decode) == 0) { | 529 | if (dmi_walk_early(dmi_decode) == 0) { |
529 | if (smbios_ver) { | 530 | if (smbios_ver) { |
530 | pr_info("SMBIOS %d.%d present.\n", | 531 | pr_info("SMBIOS %d.%d present.\n", |
531 | dmi_ver >> 8, dmi_ver & 0xFF); | 532 | dmi_ver >> 16, (dmi_ver >> 8) & 0xFF); |
532 | } else { | 533 | } else { |
533 | smbios_entry_point_size = 15; | 534 | smbios_entry_point_size = 15; |
534 | memcpy(smbios_entry_point, buf, | 535 | memcpy(smbios_entry_point, buf, |
535 | smbios_entry_point_size); | 536 | smbios_entry_point_size); |
536 | pr_info("Legacy DMI %d.%d present.\n", | 537 | pr_info("Legacy DMI %d.%d present.\n", |
537 | dmi_ver >> 8, dmi_ver & 0xFF); | 538 | dmi_ver >> 16, (dmi_ver >> 8) & 0xFF); |
538 | } | 539 | } |
539 | dmi_ver <<= 8; | ||
540 | dmi_format_ids(dmi_ids_string, sizeof(dmi_ids_string)); | 540 | dmi_format_ids(dmi_ids_string, sizeof(dmi_ids_string)); |
541 | printk(KERN_DEBUG "DMI: %s\n", dmi_ids_string); | 541 | printk(KERN_DEBUG "DMI: %s\n", dmi_ids_string); |
542 | return 0; | 542 | return 0; |