On Tue, Mar 26, 2019 at 11:10:04AM -0500, minyard@xxxxxxx wrote:
From: Corey Minyard <cminyard@xxxxxxxxxx> 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@xxxxxxxxxx> Cc: stable@xxxxxxxxxxxxxxx # v4.15+ Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx> Tested-by: Yang Yingliang <yangyingliang@xxxxxxxxxx> --- This backport is for 4.19, the backport from the main tree failed. Passes basic tests.
Queued for 4.19, thank you. -- Thanks, Sasha