Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1325688

Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling

From Corey Minyard <minyard@acm.org>
Newsgroups linux.kernel
Subject Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling
Date 2016-02-03 18:00 +0100
Message-ID <qY8WD-4vK-41@gated-at.bofh.it> (permalink)
References <qWqXE-2e9-5@gated-at.bofh.it> <qWqXF-2e9-31@gated-at.bofh.it> <qXiY2-wH-11@gated-at.bofh.it> <qXJlw-3CC-19@gated-at.bofh.it> <qXNSb-72M-39@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 02/02/2016 12:25 PM, Andy Lutomirski wrote:
> On Feb 2, 2016 5:37 AM, "Corey Minyard" <minyard@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, minyard@acm.org a écrit :
>>>> From: Corey Minyard <cminyard@mvista.com>
>>>>
>>>> This is so that an IPMI platform device can be created from a
>>>> DMI firmware entry.
>>>>
>>>> Signed-off-by: Corey Minyard <cminyard@mvista.com>
>>>> Cc: Jean Delvare <jdelvare@suse.de>
>>>> Cc: Andy Lutomirski <luto@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

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH 2/4] dmi: Add a DMI firmware node and handling minyard@acm.org - 2016-01-30 00:50 +0100
  Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling kbuild test robot <lkp@intel.com> - 2016-01-30 01:10 +0100
    Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling Corey Minyard <minyard@acm.org> - 2016-01-30 02:40 +0100
  Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling kbuild test robot <lkp@intel.com> - 2016-01-30 01:50 +0100
  Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling Andy Lutomirski <luto@amacapital.net> - 2016-01-31 23:50 +0100
    Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling Corey Minyard <minyard@acm.org> - 2016-02-01 01:40 +0100
  Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling Jean Delvare <jdelvare@suse.de> - 2016-02-01 10:30 +0100
    Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling Corey Minyard <minyard@acm.org> - 2016-02-02 14:40 +0100
      Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling Andy Lutomirski <luto@amacapital.net> - 2016-02-02 19:30 +0100
        Re: [PATCH 2/4] dmi: Add a DMI firmware node and handling Corey Minyard <minyard@acm.org> - 2016-02-03 18:00 +0100

csiph-web