Re: Regression in IPMI on 4.15.6
From: Laura Abbott
Date: Mon Mar 05 2018 - 14:07:56 EST
On 03/02/2018 05:46 AM, Corey Minyard wrote:
On 02/28/2018 01:07 PM, Corey Minyard wrote:
On 02/28/2018 08:17 AM, Corey Minyard wrote:
On 02/28/2018 07:53 AM, Corey Minyard wrote:
On 02/27/2018 05:55 PM, Laura Abbott wrote:
Hi,
Fedora got a bug report of a crash in IPMI on 4.15.6
https://bugzilla.redhat.com/show_bug.cgi?id=1549316
Unfortunately, it's only a screenshot but it's fairly
clear. It looks like a panic in the error handling path
in platform_device_unregister. Any ideas?
You may also run into another issue. You can pull the
individual patch at
https://github.com/cminyard/linux-ipmi.git c8a1972e77dbe321ce5ce0247056e727234cbaec
Actually, it needed a few more tweaks. Can you do change
426fa6179dae677134dfb37b21d057819418515b
instead? It's "ipmi: Fix some error cleanup issues"
I can send you patches, if you like. If you could test and get back
to me, that would be great.
Laura, have you had a chance to test this? I'd like to get it in soon,
if possible.
Thanks,
-corey
I think "ipmi: Re-use existing macros for built-in properties" is broken:
In file included from ./include/linux/acpi.h:28:0,
from ./include/linux/ipmi.h:21,
from drivers/char/ipmi/ipmi_dmi.c:7:
drivers/char/ipmi/ipmi_dmi.c: In function âdmi_add_platform_ipmiâ:
./include/linux/property.h:236:1: error: expected expression before â{â token
{ \
^
./include/linux/property.h:244:2: note: in expansion of macro âPROPERTY_ENTRY_INTEGERâ
PROPERTY_ENTRY_INTEGER(_name_, u8, _val_)
^~~~~~~~~~~~~~~~~~~~~~
drivers/char/ipmi/ipmi_dmi.c:79:15: note: in expansion of macro âPROPERTY_ENTRY_U8â
p[pidx++] = PROPERTY_ENTRY_U8("ipmi-type", si_type);
^~~~~~~~~~~~~~~~~
./include/linux/property.h:236:1: error: expected expression before â{â token
{ \
^
./include/linux/property.h:244:2: note: in expansion of macro âPROPERTY_ENTRY_INTEGERâ
PROPERTY_ENTRY_INTEGER(_name_, u8, _val_)
^~~~~~~~~~~~~~~~~~~~~~
drivers/char/ipmi/ipmi_dmi.c:81:14: note: in expansion of macro âPROPERTY_ENTRY_U8â
p[pidx++] = PROPERTY_ENTRY_U8("slave-addr", slave_addr);
^~~~~~~~~~~~~~~~~
./include/linux/property.h:236:1: error: expected expression before â{â token
{ \
^
./include/linux/property.h:244:2: note: in expansion of macro âPROPERTY_ENTRY_INTEGERâ
PROPERTY_ENTRY_INTEGER(_name_, u8, _val_)
^~~~~~~~~~~~~~~~~~~~~~
drivers/char/ipmi/ipmi_dmi.c:82:14: note: in expansion of macro âPROPERTY_ENTRY_U8â
p[pidx++] = PROPERTY_ENTRY_U8("addr-source", SI_SMBIOS);
^~~~~~~~~~~~~~~~~
./include/linux/property.h:236:1: error: expected expression before â{â token
{ \
^
./include/linux/property.h:246:2: note: in expansion of macro âPROPERTY_ENTRY_INTEGERâ
PROPERTY_ENTRY_INTEGER(_name_, u16, _val_)
^~~~~~~~~~~~~~~~~~~~~~
drivers/char/ipmi/ipmi_dmi.c:107:15: note: in expansion of macro âPROPERTY_ENTRY_U16â
p[pidx++] = PROPERTY_ENTRY_U16("i2c-addr", base_addr);
^~~~~~~~~~~~~~~~~~
I don't think that macro is actually a replacement?
Thanks,
Laura
BTW, the IPMI setup in your system is incorrect. SMBIOS says it's at a
memory address, but it's at an I/O address. And the address given
doesn't appear to be a valid address, the value read doesn't appear
to be a valid value.
-corey
for that fix.
-corey
Yeah, this is fixed by 174134ac7602 "ipmi_si: Fix error
handling of platform device" in mainstream.
I guess I need to request a backport of this.
Thanks for reporting.
-corey
Thanks,
Laura