From: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
To: matt.fleming@intel.com, ard.biesheuvel@linaro.org
Cc: leif.lindholm@linaro.org, linux-kernel@vger.kernel.org,
Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Subject: [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3
Date: Wed, 11 Feb 2015 11:46:32 +0200 [thread overview]
Message-ID: <1423647992-3787-4-git-send-email-ivan.khoronzhuk@linaro.org> (raw)
In-Reply-To: <1423647992-3787-1-git-send-email-ivan.khoronzhuk@linaro.org>
New SMBIOS3 spec adds additional field for versioning - docrev.
The docrev identifies the revision of a specification implemented in
the table structures, so display SMBIOS version > 3 in format,
like: 3.22.1
It's not affect on other part of code because version number
is analyzed using comparing, and it's obvious that 0x000208 is less
than 0x030201 for example.
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
---
drivers/firmware/dmi_scan.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 952e95c..e4a2d25 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -17,7 +17,7 @@
*/
static const char dmi_empty_string[] = " ";
-static u16 __initdata dmi_ver;
+static u32 dmi_ver __initdata;
static u32 dmi_len;
static u16 dmi_num;
/*
@@ -534,7 +534,8 @@ static int __init dmi_smbios3_present(const u8 *buf)
{
if (memcmp(buf, "_SM3_", 5) == 0 &&
buf[6] < 32 && dmi_checksum(buf, buf[6])) {
- dmi_ver = get_unaligned_be16(buf + 7);
+ dmi_ver = get_unaligned_be32(buf + 6);
+ dmi_ver &= 0xFFFFFF;
dmi_len = get_unaligned_le32(buf + 12);
dmi_base = get_unaligned_le64(buf + 16);
smbios_header_size = buf[6];
@@ -553,8 +554,9 @@ static int __init dmi_smbios3_present(const u8 *buf)
dmi_num = dmi_len / 4;
if (dmi_walk_early(dmi_decode) == 0) {
- pr_info("SMBIOS %d.%d present.\n",
- dmi_ver >> 8, dmi_ver & 0xFF);
+ pr_info("SMBIOS %d.%d.%d present.\n",
+ dmi_ver >> 16, (dmi_ver >> 8) & 0xFF,
+ dmi_ver & 0xFF);
dmi_format_ids(dmi_ids_string, sizeof(dmi_ids_string));
pr_debug("DMI: %s\n", dmi_ids_string);
return 0;
--
1.9.1
next prev parent reply other threads:[~2015-02-11 9:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-11 9:46 [Patch 0/3] firmware: dmi_scan: add some SMBIOSv3 corrections Ivan Khoronzhuk
2015-02-11 9:46 ` [Patch 1/3] firmware: dmi_scan: use direct access to static vars Ivan Khoronzhuk
2015-02-11 9:46 ` [Patch 2/3] firmware: dmi_scan: fix dmi_len type Ivan Khoronzhuk
2015-02-11 9:53 ` Ard Biesheuvel
2015-02-11 10:10 ` Ivan Khoronzhuk
2015-02-11 10:12 ` Ard Biesheuvel
2015-02-13 16:12 ` Matt Fleming
2015-02-15 7:11 ` Ivan Khoronzhuk
2015-02-11 9:46 ` Ivan Khoronzhuk [this message]
2015-02-11 9:55 ` [Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3 Ard Biesheuvel
2015-02-11 10:08 ` Ivan Khoronzhuk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1423647992-3787-4-git-send-email-ivan.khoronzhuk@linaro.org \
--to=ivan.khoronzhuk@linaro.org \
--cc=ard.biesheuvel@linaro.org \
--cc=leif.lindholm@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matt.fleming@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).