lkml.org 
[lkml]   [2015]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[Patch 3/3] firmware: dmi_scan: use full dmi version for SMBIOS3
    Date
    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


    \
     
     \ /
      Last update: 2015-02-11 11:01    [W:3.652 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site