mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-10-16 22:39:48 +00: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: '
|
History
|
|
|---|---|---|
| .. | ||
| 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 | ||