kernel_samsung_a53x/drivers
Eric Dumazet 8ffd74f354 genetlink: hold RCU in genlmsg_mcast()
[ Upstream commit 56440d7ec28d60f8da3bfa09062b3368ff9b16db ]

While running net selftests with CONFIG_PROVE_RCU_LIST=y I saw
one lockdep splat [1].

genlmsg_mcast() uses for_each_net_rcu(), and must therefore hold RCU.

Instead of letting all callers guard genlmsg_multicast_allns()
with a rcu_read_lock()/rcu_read_unlock() pair, do it in genlmsg_mcast().

This also means the @flags parameter is useless, we need to always use
GFP_ATOMIC.

[1]
[10882.424136] =============================
[10882.424166] WARNING: suspicious RCU usage
[10882.424309] 6.12.0-rc2-virtme #1156 Not tainted
[10882.424400] -----------------------------
[10882.424423] net/netlink/genetlink.c:1940 RCU-list traversed in non-reader section!!
[10882.424469]
other info that might help us debug this:

[10882.424500]
rcu_scheduler_active = 2, debug_locks = 1
[10882.424744] 2 locks held by ip/15677:
[10882.424791] #0: ffffffffb6b491b0 (cb_lock){++++}-{3:3}, at: genl_rcv (net/netlink/genetlink.c:1219)
[10882.426334] #1: ffffffffb6b49248 (genl_mutex){+.+.}-{3:3}, at: genl_rcv_msg (net/netlink/genetlink.c:61 net/netlink/genetlink.c:57 net/netlink/genetlink.c:1209)
[10882.426465]
stack backtrace:
[10882.426805] CPU: 14 UID: 0 PID: 15677 Comm: ip Not tainted 6.12.0-rc2-virtme #1156
[10882.426919] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[10882.427046] Call Trace:
[10882.427131]  <TASK>
[10882.427244] dump_stack_lvl (lib/dump_stack.c:123)
[10882.427335] lockdep_rcu_suspicious (kernel/locking/lockdep.c:6822)
[10882.427387] genlmsg_multicast_allns (net/netlink/genetlink.c:1940 (discriminator 7) net/netlink/genetlink.c:1977 (discriminator 7))
[10882.427436] l2tp_tunnel_notify.constprop.0 (net/l2tp/l2tp_netlink.c:119) l2tp_netlink
[10882.427683] l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:253) l2tp_netlink
[10882.427748] genl_family_rcv_msg_doit (net/netlink/genetlink.c:1115)
[10882.427834] genl_rcv_msg (net/netlink/genetlink.c:1195 net/netlink/genetlink.c:1210)
[10882.427877] ? __pfx_l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:186) l2tp_netlink
[10882.427927] ? __pfx_genl_rcv_msg (net/netlink/genetlink.c:1201)
[10882.427959] netlink_rcv_skb (net/netlink/af_netlink.c:2551)
[10882.428069] genl_rcv (net/netlink/genetlink.c:1220)
[10882.428095] netlink_unicast (net/netlink/af_netlink.c:1332 net/netlink/af_netlink.c:1357)
[10882.428140] netlink_sendmsg (net/netlink/af_netlink.c:1901)
[10882.428210] ____sys_sendmsg (net/socket.c:729 (discriminator 1) net/socket.c:744 (discriminator 1) net/socket.c:2607 (discriminator 1))

Fixes: 33f72e6f0c67 ("l2tp : multicast notification to the registered listeners")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: James Chapman <jchapman@katalix.com>
Cc: Tom Parkin <tparkin@katalix.com>
Cc: Johannes Berg <johannes.berg@intel.com>
Link: https://patch.msgid.link/20241011171217.3166614-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:21:59 +01:00
..
accessibility speakup: Fix sizeof() vs ARRAY_SIZE() bug 2024-11-19 12:26:51 +01:00
acpi ACPI: battery: Fix possible crash when unregistering a battery hook 2024-11-23 23:21:48 +01:00
amba
android binder: fix UAF caused by offsets overwrite 2024-11-23 23:21:07 +01:00
ata ata: sata_sil: Rename sil_blacklist to sil_quirks 2024-11-23 23:21:40 +01:00
atm atm: idt77252: prevent use after free in dequeue_rx() 2024-11-23 23:20:43 +01:00
auxdisplay
base driver core: bus: Return -EIO instead of 0 when show/store invalid bus attribute 2024-11-23 23:21:50 +01:00
battery
bcma
block aoe: fix the potential use-after-free problem in more places 2024-11-23 23:21:45 +01:00
bluetooth Bluetooth: btusb: Fix regression with fake CSR controllers 0a12:0001 2024-11-23 23:21:56 +01:00
bts
bus bus: integrator-lm: fix OF node leak in probe() 2024-11-23 23:21:30 +01:00
cdrom
char virtio_console: fix misc probe bugs 2024-11-23 23:21:49 +01:00
clk clk: imx: Remove CLK_SET_PARENT_GATE for DRAM mux for i.MX7D 2024-11-23 23:21:50 +01:00
clocksource clocksource/drivers/qcom: Add missing iounmap() on errors in msm_dt_timer_init() 2024-11-23 23:21:20 +01:00
connector
counter counter: ti-eqep: enable clock at probe 2024-11-19 14:19:33 +01:00
cpufreq cpufreq: ti-cpufreq: Introduce quirks to handle syscon fails appropriately 2024-11-23 23:21:18 +01:00
cpuidle cpuidle: menu: Take negative "sleep length" values into account 2024-11-19 18:01:28 +01:00
crypto crypto: ccp - Properly unregister /dev/sev on sev PLATFORM_STATUS failure 2024-11-23 23:21:31 +01:00
dax
dca
devfreq PM / devfreq: Fix buffer overflow in trans_stat_show 2024-11-19 11:32:38 +01:00
dio
dma dmaengine: dw: Add memory bus width verification 2024-11-23 23:20:55 +01:00
dma-buf dma-buf/sync_file: Speed up ioctl by omitting debug names 2024-11-19 17:53:23 +01:00
edac EDAC, i10nm: make skx_common.o a separate module 2024-11-23 23:19:56 +01:00
eisa
extcon extcon: max8997: select IRQ_DOMAIN instead of depending on it 2024-11-19 12:27:04 +01:00
fingerprint
firewire firewire: nosy: ensure user_length is taken into account when fetching packet contents 2024-11-19 11:32:46 +01:00
firmware firmware: tegra: bpmp: Drop unused mbox_client_to_bpmp() 2024-11-23 23:21:42 +01:00
fpga fpga: region: add owner module and take its refcount 2024-11-19 12:27:04 +01:00
fsi
gnss
gpio gpio: aspeed: Use devm_clk api to manage clock source 2024-11-23 23:21:51 +01:00
gpu drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation 2024-11-23 23:21:58 +01:00
greybus greybus: Fix use-after-free bug in gb_interface_release due to race condition. 2024-11-19 14:19:05 +01:00
gud
hid hid: intel-ish-hid: Fix uninitialized variable 'rv' in ish_fw_xfer_direct_dma 2024-11-23 23:21:53 +01:00
hsi
hv Drivers: hv: vmbus: Fix rescind handling in uio_hv_generic 2024-11-23 23:21:07 +01:00
hwmon hwmon: (adm9240) Add missing dependency on REGMAP_I2C 2024-11-23 23:21:52 +01:00
hwspinlock hwspinlock: Introduce hwspin_lock_bust() 2024-11-23 23:20:58 +01:00
hwtracing coresight: tmc: sg: Do not leak sg_table 2024-11-23 23:21:28 +01:00
i2c i2c: i801: Use a different adapter-name for IDF adapters 2024-11-23 23:21:50 +01:00
i3c
ide
idle
ifconn
iio iio: adc: ti-ads124s08: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig 2024-11-23 23:21:56 +01:00
infiniband RDMA/bnxt_re: Fix a bug while setting up Level-2 PBL pages 2024-11-23 23:21:58 +01:00
input Input: synaptics-rmi4 - fix UAF of IRQ domain on driver removal 2024-11-23 23:21:49 +01:00
interconnect interconnect: qcom: sm8250: Enable sync_state 2024-11-23 23:21:28 +01:00
iommu iommu/vt-d: Fix potential lockup if qi_submit_sync called with 0 count 2024-11-23 23:21:40 +01:00
ipack
irqchip irqchip/gic-v4: Don't allow a VMOVP on a dying VPE 2024-11-23 23:21:57 +01:00
isdn mISDN: Fix a use after free in hfcmulti_tx() 2024-11-23 23:20:17 +01:00
kperfmon
kq/mesh
leds leds: spi-byte: Call of_node_put() on error path 2024-11-23 23:21:03 +01:00
lightnvm
macintosh macintosh/therm_windtunnel: fix module unload. 2024-11-23 23:20:11 +01:00
mailbox mailbox: bcm2835: Fix timeout during suspend mode 2024-11-23 23:21:35 +01:00
mcb
md Revert "dm: requeue IO if mapping table not yet available" 2024-11-23 23:21:28 +01:00
media media: videobuf2-core: clear memory related fields in __vb2_plane_dmabuf_put() 2024-11-23 23:21:50 +01:00
memory memory: stm32-fmc2-ebi: check regmap_read return value 2024-11-23 23:20:46 +01:00
memstick
message
mfd mfd: omap-usb-tll: Use struct_size to allocate tll 2024-11-23 23:20:09 +01:00
misc VMCI: Fix use-after-free when removing resource in vmci_resource_remove() 2024-11-23 23:21:07 +01:00
mmc mmc: cqhci: Fix checking of CQHCI_HALT state 2024-11-23 23:21:09 +01:00
most
mtd mtd: powernv: Add check devm_kasprintf() returned value 2024-11-23 23:21:21 +01:00
muic
mux
net net: systemport: fix potential memory leak in bcm_sysport_xmit() 2024-11-23 23:21:59 +01:00
nfc nfc: pn533: Add poll mod list filling check 2024-11-23 23:20:55 +01:00
ntb ntb: ntb_hw_switchtec: Fix use after free vulnerability in switchtec_ntb_remove due to race condition 2024-11-23 23:21:50 +01:00
nubus
nvdimm virtio_pmem: Check device status before requesting flush 2024-11-23 23:21:50 +01:00
nvme nvmet-tcp: fix kernel crash if commands allocation fails 2024-11-23 23:21:08 +01:00
nvmem nvmem: Fix return type of devm_nvmem_device_get() in kerneldoc 2024-11-23 23:21:07 +01:00
of of/irq: Support #msi-cells=<0> in of_msi_get_domain 2024-11-23 23:21:44 +01:00
opp
oprofile
parisc
parport parport: Proper fix for array out-of-bounds access 2024-11-23 23:21:57 +01:00
pci PCI: Mark Creative Labs EMU20k2 INTx masking as broken 2024-11-23 23:21:50 +01:00
pcmcia pcmcia: Use resource_size function on resource object 2024-11-23 23:21:03 +01:00
perf
phy
pinctrl pinctrl: mvebu: Fix devinit_dove_pinctrl_probe function 2024-11-23 23:21:25 +01:00
platform platform/x86: touchscreen_dmi: add nanote-next quirk 2024-11-23 23:21:40 +01:00
pnp
power power: reset: brcmstb: Do not go into infinite loop if reset fails 2024-11-23 23:21:40 +01:00
powercap powercap: RAPL: fix invalid initialization for pl4_supported field 2024-11-23 23:21:29 +01:00
pps pps: add an error check in parport_attach 2024-11-23 23:21:34 +01:00
ps3
ptp ptp: Fix error message on failed pin verification 2024-11-19 14:19:01 +01:00
pwm pwm: stm32: Always do lazy disabling 2024-11-23 23:19:56 +01:00
rapidio
ras
regulator regulator: core: Fix modpost error "regulator_get_regmap" undefined 2024-11-19 14:19:09 +01:00
remoteproc remoteproc: imx_rproc: Skip over memory region when node value is NULL 2024-11-23 23:20:20 +01:00
reset reset: berlin: fix OF node leak in probe() error path 2024-11-23 23:21:20 +01:00
rpmsg
rtc rtc: at91sam9: fix OF node leak in probe() error path 2024-11-23 23:21:46 +01:00
s390 s390/sclp_vt220: Convert newlines to CRLF instead of LFCR 2024-11-23 23:21:55 +01:00
samsung
sbus
scsi scsi: aacraid: Rearrange order of struct aac_srb_unit 2024-11-23 23:21:41 +01:00
sensorhub
sensors
sfi
sh
siox
slimbus
soc soc: versatile: realview: fix soc_dev leak during device remove 2024-11-23 23:21:34 +01:00
soundwire soundwire: stream: Revert "soundwire: stream: fix programming slave ports for non-continous port maps" 2024-11-23 23:21:13 +01:00
spi spi: bcm63xx: Fix module autoloading 2024-11-23 23:21:42 +01:00
spmi
spu_verify
ssb ssb: Fix division by zero issue in ssb_calc_clock_rate 2024-11-23 23:20:44 +01:00
staging minmax: reduce min/max macro expansion in atomisp driver 2024-11-23 23:21:12 +01:00
sti
target genetlink: hold RCU in genlmsg_mcast() 2024-11-23 23:21:59 +01:00
tc
tee
thermal
thunderbolt thunderbolt: Mark XDomain as unplugged when router is removed 2024-11-23 23:20:42 +01:00
tty tty: rp2: Fix reset with non forgiving PCIe host bridges 2024-11-23 23:21:31 +01:00
uh
uio Drivers: hv: vmbus: Fix rescind handling in uio_hv_generic 2024-11-23 23:21:07 +01:00
usb USB: serial: option: add Telit FN920C04 MBIM compositions 2024-11-23 23:21:56 +01:00
vdpa
vfio vfio/fsl-mc: Block calling interrupt handler without trigger 2024-11-19 09:22:45 +01:00
vhost vhost/scsi: null-ptr-dereference in vhost_scsi_get_req() 2024-11-23 23:21:48 +01:00
vibrator
video fbdev: sisfb: Fix strbuf array overflow 2024-11-23 23:21:50 +01:00
virt
virtio vdpa: Add eventfd for the vdpa callback 2024-11-23 23:21:28 +01:00
vision
vision3
visorbus
vlynq
vme
w1
watchdog watchdog: imx_sc_wdt: Don't disable WDT in suspend 2024-11-23 23:21:25 +01:00
xen xen/swiotlb: add alignment check for dma buffers 2024-11-23 23:21:22 +01:00
zorro
Kconfig Added KernelSU 2024-11-19 22:44:48 +01:00
Kconfig.variant1
kernelsu Added KernelSU 2024-11-19 22:44:48 +01:00
Makefile Added KernelSU 2024-11-19 22:44:48 +01:00
Makefile.variant1