kernel_samsung_a53x/arch/um/drivers
Tiwei Bie 966c09b684 um: ubd: Do not use drvdata in release
commit 5bee35e5389f450a7eea7318deb9073e9414d3b1 upstream.

The drvdata is not available in release. Let's just use container_of()
to get the ubd instance. Otherwise, removing a ubd device will result
in a crash:

RIP: 0033:blk_mq_free_tag_set+0x1f/0xba
RSP: 00000000e2083bf0  EFLAGS: 00010246
RAX: 000000006021463a RBX: 0000000000000348 RCX: 0000000062604d00
RDX: 0000000004208060 RSI: 00000000605241a0 RDI: 0000000000000348
RBP: 00000000e2083c10 R08: 0000000062414010 R09: 00000000601603f7
R10: 000000000000133a R11: 000000006038c4bd R12: 0000000000000000
R13: 0000000060213a5c R14: 0000000062405d20 R15: 00000000604f7aa0
Kernel panic - not syncing: Segfault with no mm
CPU: 0 PID: 17 Comm: kworker/0:1 Not tainted 6.8.0-rc3-00107-gba3f67c11638 #1
Workqueue: events mc_work_proc
Stack:
 00000000 604f7ef0 62c5d000 62405d20
 e2083c30 6002c776 6002c755 600e47ff
 e2083c60 6025ffe3 04208060 603d36e0
Call Trace:
 [<6002c776>] ubd_device_release+0x21/0x55
 [<6002c755>] ? ubd_device_release+0x0/0x55
 [<600e47ff>] ? kfree+0x0/0x100
 [<6025ffe3>] device_release+0x70/0xba
 [<60381d6a>] kobject_put+0xb5/0xe2
 [<6026027b>] put_device+0x19/0x1c
 [<6026a036>] platform_device_put+0x26/0x29
 [<6026ac5a>] platform_device_unregister+0x2c/0x2e
 [<6002c52e>] ubd_remove+0xb8/0xd6
 [<6002bb74>] ? mconsole_reply+0x0/0x50
 [<6002b926>] mconsole_remove+0x160/0x1cc
 [<6002bbbc>] ? mconsole_reply+0x48/0x50
 [<6003379c>] ? um_set_signals+0x3b/0x43
 [<60061c55>] ? update_min_vruntime+0x14/0x70
 [<6006251f>] ? dequeue_task_fair+0x164/0x235
 [<600620aa>] ? update_cfs_group+0x0/0x40
 [<603a0e77>] ? __schedule+0x0/0x3ed
 [<60033761>] ? um_set_signals+0x0/0x43
 [<6002af6a>] mc_work_proc+0x77/0x91
 [<600520b4>] process_scheduled_works+0x1af/0x2c3
 [<6004ede3>] ? assign_work+0x0/0x58
 [<600527a1>] worker_thread+0x2f7/0x37a
 [<6004ee3b>] ? set_pf_worker+0x0/0x64
 [<6005765d>] ? arch_local_irq_save+0x0/0x2d
 [<60058e07>] ? kthread_exit+0x0/0x3a
 [<600524aa>] ? worker_thread+0x0/0x37a
 [<60058f9f>] kthread+0x130/0x135
 [<6002068e>] new_thread_handler+0x85/0xb6

Cc: stable@vger.kernel.org
Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com>
Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Link: https://patch.msgid.link/20241104163203.435515-3-tiwei.btw@antgroup.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-17 13:24:19 +01:00
..
chan.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
chan_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
chan_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
chan_user.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cow.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cow_sys.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cow_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
daemon.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
daemon_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
daemon_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
harddog_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
harddog_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hostaudio_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
line.c Revert "um: line: always fill *error_out in setup_one_line()" 2024-11-24 00:23:40 +01:00
line.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mconsole.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mconsole_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mconsole_kern.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mconsole_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mmapper_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
net_kern.c um: net: Fix return type of uml_net_start_xmit() 2024-11-18 12:13:19 +01:00
net_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
null.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pcap_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pcap_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pcap_user.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
port.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
port_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
port_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pty.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
random.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slip.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slip_common.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slip_common.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slip_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slip_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slirp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slirp_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slirp_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ssl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stderr_console.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stdio_console.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stdio_console.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tty.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ubd.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ubd_kern.c um: ubd: Do not use drvdata in release 2024-12-17 13:24:19 +01:00
ubd_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
umcast.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
umcast_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
umcast_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vde.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vde_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vde_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vector_kern.c um: vector: fix bpfflash parameter evaluation 2024-11-19 12:27:06 +01:00
vector_kern.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vector_transports.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vector_user.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vector_user.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vhost_user.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
virtio_uml.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xterm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xterm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xterm_kern.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00