On 02/02/2016 12:25 PM, Andy Lutomirski wrote: > On Feb 2, 2016 5:37 AM, "Corey Minyard" <miny...@acm.org> wrote: >> On 02/01/2016 03:25 AM, Jean Delvare wrote: >>> 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, miny...@acm.org a écrit : >>>> From: Corey Minyard <cminy...@mvista.com> >>>> >>>> This is so that an IPMI platform device can be created from a >>>> DMI firmware entry. >>>> >>>> Signed-off-by: Corey Minyard <cminy...@mvista.com> >>>> Cc: Jean Delvare <jdelv...@suse.de> >>>> Cc: Andy Lutomirski <l...@kernel.org> >>>> --- >>>> 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. >>> >> Ok. I had assumed extend_break wasn't zeroing since there were all the NULL >> assignments, >> I should have looked. >> >> I was thinking about this, and the fwnode could just be added to the IPMI >> device. I'm not >> sure if you would prefer that over adding it to dmi_device. The fwnode is >> in acpi_device, >> and I was modelling these changes after that, but maybe that's not required >> here. > I think dmi_device is right, especially if your patches result in a > firmware_node sysfs link being created. That way the link will point > to the right place.
Yeah, that's the conclusion I had come to, I think. It doesn't currently add the firmware_node to sysfs, but that's easily added and probably a next logical step. I'll have a new set of patches out today after I compile test at each step. Thanks, -corey ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 _______________________________________________ Openipmi-developer mailing list Openipmi-developer@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openipmi-developer