mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-07-24 01:54:03 -04:00
In case a client fails to connect in mei_cldev_enable(), the
caller won't call the mei_cldev_disable leaving the client
in a linked stated. Upon driver unload the client structure
will be freed in mei_cl_bus_dev_release(), leaving a stale pointer
on a fail_list. This will eventually end up in crash
during power down flow in mei_cl_set_disonnected().
RIP: mei_cl_set_disconnected+0x5/0x260[mei]
Call trace:
mei_cl_all_disconnect+0x22/0x30
mei_reset+0x194/0x250
__synchronize_hardirq+0x43/0x50
_cond_resched+0x15/0x30
mei_me_intr_clear+0x20/0x100
mei_stop+0x76/0xb0
mei_me_shutdown+0x3f/0x80
pci_device_shutdown+0x34/0x60
kernel_restart+0x0e/0x30
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=200455
Fixes: '
|
||
---|---|---|
.. | ||
bus-fixup.c | ||
bus.c | ||
client.c | ||
client.h | ||
debugfs.c | ||
hbm.c | ||
hbm.h | ||
hw-me-regs.h | ||
hw-me.c | ||
hw-me.h | ||
hw-txe-regs.h | ||
hw-txe.c | ||
hw-txe.h | ||
hw.h | ||
init.c | ||
interrupt.c | ||
Kconfig | ||
main.c | ||
Makefile | ||
mei-trace.c | ||
mei-trace.h | ||
mei_dev.h | ||
pci-me.c | ||
pci-txe.c |