From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752611AbbBRKSp (ORCPT ); Wed, 18 Feb 2015 05:18:45 -0500 Received: from mail-lb0-f170.google.com ([209.85.217.170]:45535 "EHLO mail-lb0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752514AbbBRKSn (ORCPT ); Wed, 18 Feb 2015 05:18:43 -0500 Message-ID: <54E466FD.2090601@linaro.org> Date: Wed, 18 Feb 2015 12:18:37 +0200 From: Ivan Khoronzhuk User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Matt Fleming CC: Ard Biesheuvel , "linux-kernel@vger.kernel.org" , Leif Lindholm Subject: Re: [Patch v2] firmware: dmi_scan: fix dmi scan to handle "End of Table" structure References: <1423059725-5448-1-git-send-email-ivan.khoronzhuk@linaro.org> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Matt Could you please pick up this patch. On 02/05/2015 12:36 PM, Ard Biesheuvel wrote: > On 4 February 2015 at 14:22, Ivan Khoronzhuk wrote: >> The dmi-sysfs should create "End of Table" entry, that is type 127. >> But after adding initial SMBIOS v3 support the 127-0 entry is not >> handled any more, as result it's not created in sysfs. >> This is important because the size of whole DMI table must correspond >> to sum of all DMI entry sizes. >> >> So move "end-of-table" check after it's handled by decode. >> >> Signed-off-by: Ivan Khoronzhuk > Reviewed-by: Ard Biesheuvel > >> --- >> >> v2..v1: >> Move end of table check after it's handled instead of removing >> Correct commit >> >> drivers/firmware/dmi_scan.c | 13 +++++++------ >> 1 file changed, 7 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c >> index c5f7b4e..a44b87c 100644 >> --- a/drivers/firmware/dmi_scan.c >> +++ b/drivers/firmware/dmi_scan.c >> @@ -93,12 +93,6 @@ static void dmi_table(u8 *buf, int len, int num, >> const struct dmi_header *dm = (const struct dmi_header *)data; >> >> /* >> - * 7.45 End-of-Table (Type 127) [SMBIOS reference spec v3.0.0] >> - */ >> - if (dm->type == DMI_ENTRY_END_OF_TABLE) >> - break; >> - >> - /* >> * We want to know the total length (formatted area and >> * strings) before decoding to make sure we won't run off the >> * table in dmi_decode or dmi_string >> @@ -108,6 +102,13 @@ static void dmi_table(u8 *buf, int len, int num, >> data++; >> if (data - buf < len - 1) >> decode(dm, private_data); >> + >> + /* >> + * 7.45 End-of-Table (Type 127) [SMBIOS reference spec v3.0.0] >> + */ >> + if (dm->type == DMI_ENTRY_END_OF_TABLE) >> + break; >> + >> data += 2; >> i++; >> } >> -- >> 1.9.1 >>