From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752100AbcBAJZ2 (ORCPT ); Mon, 1 Feb 2016 04:25:28 -0500 Received: from mx2.suse.de ([195.135.220.15]:50674 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750733AbcBAJZ0 (ORCPT ); Mon, 1 Feb 2016 04:25:26 -0500 Subject: Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling From: Jean Delvare To: minyard@acm.org Cc: openipmi-developer@lists.sourceforge.net, linux-kernel@vger.kernel.org, Andy Lutomirski , Corey Minyard In-Reply-To: <1454107394-8914-3-git-send-email-minyard@acm.org> References: <1454107394-8914-1-git-send-email-minyard@acm.org> <1454107394-8914-3-git-send-email-minyard@acm.org> Content-Type: text/plain; charset="UTF-8" Organization: Suse Linux Date: Mon, 01 Feb 2016 10:25:22 +0100 Message-ID: <1454318722.4754.17.camel@chaos.site> Mime-Version: 1.0 X-Mailer: Evolution 2.28.2 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Corey, I won't comment on the IPMI side of this as this isn't my area. However I have a comment on the DMI part: Le Friday 29 January 2016 à 16:43 -0600, minyard@acm.org a écrit : > From: Corey Minyard > > This is so that an IPMI platform device can be created from a > DMI firmware entry. > > Signed-off-by: Corey Minyard > Cc: Jean Delvare > Cc: Andy Lutomirski > --- > drivers/firmware/dmi_scan.c | 34 ++++++++++++++++++++++++---------- > include/linux/dmi.h | 24 ++++++++++++++++++++++++ > include/linux/fwnode.h | 1 + > 3 files changed, 49 insertions(+), 10 deletions(-) > > diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c > index da471b2..13d9bca 100644 > --- a/drivers/firmware/dmi_scan.c > +++ b/drivers/firmware/dmi_scan.c > @@ -41,6 +41,16 @@ static struct dmi_memdev_info { > } *dmi_memdev; > static int dmi_memdev_nr; > > +static void *dmi_zalloc(unsigned len) > +{ > + void *ret = dmi_alloc(len); > + > + if (ret) > + memset(ret, 0, len); > + > + return ret; > +} > + > static const char * __init dmi_string_nosave(const struct dmi_header *dm, u8 s) > { > const u8 *bp = ((u8 *) dm) + dm->length; > @@ -242,6 +252,12 @@ static void __init dmi_save_type(const struct dmi_header *dm, int slot, > (...) > @@ -250,15 +266,14 @@ static void __init dmi_save_one_device(int type, const char *name) > if (dmi_find_device(type, name, NULL)) > return; > > - dev = dmi_alloc(sizeof(*dev) + strlen(name) + 1); > + dev = dmi_zalloc(sizeof(*dev) + strlen(name) + 1); > if (!dev) > return; > > dev->type = type; > strcpy((char *)(dev + 1), name); > dev->name = (char *)(dev + 1); > - dev->device_data = NULL; This change seems rather unrelated, and I'm not sure what purpose it serves. On ia64 and arm64 it is clearly redundant as dmi_alloc calls kzalloc directly. On x86_64, extend_brk is called instead (don't ask me why, I have no clue) but looking at the code I see that it does memset(ret, 0, size) as well so memory is also zeroed there. Which makes dmi_alloc the same as dmi_zalloc on all 3 architectures. So please revert this change. This will make your patch easier to review, too. -- Jean Delvare SUSE L3 Support