diff options
| author | Joshua Mulloy <joshuamulloy@gmail.com> | 2026-10-04 06:25:25 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-10-13 15:56:57 +0200 |
| commit | 2b23952d70d43321a90dd8a06bcaab04a1a73118 (patch) | |
| tree | 39ccd7f3f2602d3c5e400f0c33ef258f1819ac35 /tools/lib/python/kdoc/python_version.py | |
| parent | a8af929e9d751a85e9f46e8515cbe266249465a2 (diff) | |
misc: tifm: don't clear dev->driver in tifm_device_remove()
tifm_device_remove() sets sock->dev.driver to NULL after calling the
driver's remove() callback. Since commit a995fe1a3aa7 ("rust: driver:
drop device private data post unbind"), device_unbind_cleanup()
dereferences dev->driver after the bus remove() callback has returned,
so removing a card from a TI FlashMedia reader oopses:
BUG: kernel NULL pointer dereference, address: 0000000000000090
Workqueue: tifm tifm_7xx1_switch_media [tifm_7xx1]
RIP: 0010:device_unbind_cleanup+0x16/0xb0
Call Trace:
device_release_driver_internal+0x220/0x260
device_release_driver+0x12/0x20
bus_remove_device+0xf9/0x1c0
device_del+0x161/0x3b0
device_unregister+0x17/0x70
tifm_7xx1_switch_media.cold+0x6b/0xbd [tifm_7xx1]
process_one_work+0x1ac/0x3d0
worker_thread+0x1b8/0x360
kthread+0xf7/0x130
ret_from_fork+0x195/0x2a0
ret_from_fork_asm+0x1a/0x30
The driver core clears dev->driver itself in device_unbind_cleanup(), so
there is no need for the bus code to do it. Remove the assignment.
The problem was found and the fix written with the help of an AI coding
assistant. Tested on a Dell Precision M6500 (TI PCIxx12 FlashMedia,
104c:803b) running a 7.0 kernel: removing an SD card oopsed every time
without the fix; with it, insert, read and remove work.
Fixes: a995fe1a3aa7 ("rust: driver: drop device private data post unbind")
Cc: stable@kernel.org
Assisted-by: LLM
Signed-off-by: Joshua Mulloy <joshuamulloy@gmail.com>
Link: https://patch.msgid.link/20261004102525.34356-1-joshuamulloy@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
