Revision 7ff57e98fb78ad94edafbdc7435f2d745e9e6bb5 authored by Fabio M. De Francesco on 23 February 2022, 10:02:52 UTC, committed by Jakub Kicinski on 24 February 2022, 17:09:33 UTC
smc_pnetid_by_table_ib() uses read_lock() and then it calls smc_pnet_apply_ib()
which, in turn, calls mutex_lock(&smc_ib_devices.mutex).

read_lock() disables preemption. Therefore, the code acquires a mutex while in
atomic context and it leads to a SAC bug.

Fix this bug by replacing the rwlock with a mutex.

Reported-and-tested-by: syzbot+4f322a6d84e991c38775@syzkaller.appspotmail.com
Fixes: 64e28b52c7a6 ("net/smc: add pnet table namespace support")
Confirmed-by: Tony Lu <tonylu@linux.alibaba.com>
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Acked-by: Karsten Graul <kgraul@linux.ibm.com>
Link: https://lore.kernel.org/r/20220223100252.22562-1-fmdefrancesco@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent e13ad14
History
File Mode Size
80211
acpi
backlight
cxl
dmaengine
driver-model
early-userspace
firmware
fpga
gpio
i3c
iio
md
media
mei
memory-devices
mmc
mtd
nfc
nvdimm
pci
phy
pldmfw
pm
rapidio
serial
soundwire
surface_aggregator
thermal
usb
xilinx
auxiliary_bus.rst -rw-r--r-- 1.1 KB
basics.rst -rw-r--r-- 2.0 KB
clk.rst -rw-r--r-- 12.2 KB
component.rst -rw-r--r-- 315 bytes
connector.rst -rw-r--r-- 5.4 KB
console.rst -rw-r--r-- 5.8 KB
dcdbas.rst -rw-r--r-- 3.9 KB
devfreq.rst -rw-r--r-- 852 bytes
device-io.rst -rw-r--r-- 23.1 KB
device_link.rst -rw-r--r-- 16.2 KB
dma-buf.rst -rw-r--r-- 13.5 KB
edac.rst -rw-r--r-- 6.1 KB
eisa.rst -rw-r--r-- 7.6 KB
firewire.rst -rw-r--r-- 1.4 KB
frame-buffer.rst -rw-r--r-- 2.0 KB
generic-counter.rst -rw-r--r-- 24.3 KB
hsi.rst -rw-r--r-- 3.1 KB
i2c.rst -rw-r--r-- 2.3 KB
index.rst -rw-r--r-- 1.7 KB
infiniband.rst -rw-r--r-- 3.0 KB
infrastructure.rst -rw-r--r-- 1.4 KB
input.rst -rw-r--r-- 707 bytes
interconnect.rst -rw-r--r-- 5.2 KB
io-mapping.rst -rw-r--r-- 3.2 KB
io_ordering.rst -rw-r--r-- 2.0 KB
ioctl.rst -rw-r--r-- 10.4 KB
ipmb.rst -rw-r--r-- 3.5 KB
ipmi.rst -rw-r--r-- 32.4 KB
isa.rst -rw-r--r-- 5.1 KB
isapnp.rst -rw-r--r-- 492 bytes
libata.rst -rw-r--r-- 38.1 KB
mailbox.rst -rw-r--r-- 4.4 KB
men-chameleon-bus.rst -rw-r--r-- 6.1 KB
message-based.rst -rw-r--r-- 217 bytes
misc_devices.rst -rw-r--r-- 93 bytes
miscellaneous.rst -rw-r--r-- 1.3 KB
mtdnand.rst -rw-r--r-- 35.2 KB
ntb.rst -rw-r--r-- 11.8 KB
nvmem.rst -rw-r--r-- 6.3 KB
parport-lowlevel.rst -rw-r--r-- 37.1 KB
pin-control.rst -rw-r--r-- 51.6 KB
pps.rst -rw-r--r-- 8.4 KB
ptp.rst -rw-r--r-- 4.4 KB
pwm.rst -rw-r--r-- 7.1 KB
regulator.rst -rw-r--r-- 5.9 KB
reset.rst -rw-r--r-- 8.3 KB
rfkill.rst -rw-r--r-- 5.0 KB
s390-drivers.rst -rw-r--r-- 4.4 KB
scsi.rst -rw-r--r-- 9.4 KB
slimbus.rst -rw-r--r-- 5.3 KB
sm501.rst -rw-r--r-- 2.8 KB
spi.rst -rw-r--r-- 2.7 KB
switchtec.rst -rw-r--r-- 4.0 KB
sync_file.rst -rw-r--r-- 3.1 KB
target.rst -rw-r--r-- 1.0 KB
uio-howto.rst -rw-r--r-- 29.7 KB
vfio-mediated-device.rst -rw-r--r-- 14.1 KB
vfio.rst -rw-r--r-- 21.8 KB
vme.rst -rw-r--r-- 10.4 KB
w1.rst -rw-r--r-- 1.1 KB
xillybus.rst -rw-r--r-- 17.6 KB
zorro.rst -rw-r--r-- 2.9 KB

back to top