Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755261AbbBEKgL (ORCPT ); Thu, 5 Feb 2015 05:36:11 -0500 Received: from mail-ie0-f177.google.com ([209.85.223.177]:59488 "EHLO mail-ie0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751060AbbBEKgJ (ORCPT ); Thu, 5 Feb 2015 05:36:09 -0500 MIME-Version: 1.0 In-Reply-To: <1423059725-5448-1-git-send-email-ivan.khoronzhuk@linaro.org> References: <1423059725-5448-1-git-send-email-ivan.khoronzhuk@linaro.org> Date: Thu, 5 Feb 2015 10:36:08 +0000 Message-ID: Subject: Re: [Patch v2] firmware: dmi_scan: fix dmi scan to handle "End of Table" structure From: Ard Biesheuvel To: Ivan Khoronzhuk Cc: "linux-kernel@vger.kernel.org" , Matt Fleming , Leif Lindholm Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2307 Lines: 61 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 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/