diff options
author | Corey Minyard <cminyard@mvista.com> | 2019-02-21 21:10:07 +0300 |
---|---|---|
committer | Corey Minyard <cminyard@mvista.com> | 2019-02-22 16:12:41 +0300 |
commit | 41b766d661bf94a364960862cfc248a78313dbd3 (patch) | |
tree | e623d8249e3d353e59d0cd6a09b333c3c069bb6f /Kconfig | |
parent | f32043901a389ee8b5417c0cec547a84a2f9b38a (diff) | |
download | linux-41b766d661bf94a364960862cfc248a78313dbd3.tar.xz |
ipmi_si: Fix crash when using hard-coded device
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.
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>
Diffstat (limited to 'Kconfig')
0 files changed, 0 insertions, 0 deletions