Re: [PATCH] ipmi_si: Fix crash when using hard-coded device

Sasha Levin
2019-03-27T14:47:59Z

On Tue, Mar 26, 2019 at 11:10:04AM -0500, minyard@acm.org wrote:
>From: Corey Minyard <cminyard@mvista.com>
>
>Backport from 41b766d661bf94a364960862cfc248a78313dbd3
>
>When excuting a command like:
> modprobe ipmi_si ports=0xffc0e3 type=bt
>The system would get an oops.
>
>The trouble here is that ipmi_si_hardcode_find_bmc() is called before
>ipmi_si_platform_init(), but initialization of the hard-coded device
>creates an IPMI platform device, which won't be initialized yet.
>
>The real trouble is that hard-coded devices aren't created with
>any device, and the fixup is done later. So do it right, create the
>hard-coded devices as normal platform devices.
>
>This required adding some new resource types to the IPMI platform
>code for passing information required by the hard-coded device
>and adding some code to remove the hard-coded platform devices
>on module removal.
>
>To enforce the "hard-coded devices passed by the user take priority
>over firmware devices" rule, some special code was added to check
>and see if a hard-coded device already exists.
>
>The backport required some minor fixups and adding the device
>id table that had been added in another change and was used
>in this one.
>
>Reported-by: Yang Yingliang <yangyingliang@huawei.com>
>Cc: stable@vger.kernel.org # v4.15+
>Signed-off-by: Corey Minyard <cminyard@mvista.com>
>Tested-by: Yang Yingliang <yangyingliang@huawei.com>
>---
>
>This backport is for 4.19, the backport from the main tree
>failed. Passes basic tests.

Queued for 4.19, thank you.

--
Thanks,
Sasha