linux_dsm_epyc7002/drivers
Madhuparna Bhowmik e1c3cdb26a rapidio: avoid data race between file operation callbacks and mport_cdev_add().
Fields of md(mport_dev) are set after cdev_device_add().  However, the
file operation callbacks can be called after cdev_device_add() and
therefore accesses to fields of md in the callbacks can race with the rest
of the mport_cdev_add() function.

One such example is INIT_LIST_HEAD(&md->portwrites) in mport_cdev_add(),
the list is initialised after cdev_device_add().  This can race with
list_add_tail(&pw_filter->md_node,&md->portwrites) in
rio_mport_add_pw_filter() which is called by unlocked_ioctl.

To avoid such data races use cdev_device_add() after initializing md.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Alexandre Bounine <alex.bou9@gmail.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ira Weiny <ira.weiny@intel.com>
Cc: Allison Randal <allison@lohutok.net>
Cc: Pavel Andrianov <andrianov@ispras.ru>
Link: http://lkml.kernel.org/r/20200426112950.1803-1-madhuparnabhowmik10@gmail.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-06-04 19:06:26 -07:00
..
accessibility
acpi ACPI updates for 5.8-rc1 2020-06-02 13:25:52 -07:00
amba amba: Initialize dma_parms for amba devices 2020-04-28 17:44:34 +02:00
android
ata for-5.8/block-2020-06-01 2020-06-02 15:29:19 -07:00
atm docs: networking: convert iphase.txt to ReST 2020-04-28 14:39:47 -07:00
auxdisplay
base Merge branch 'akpm' (patches from Andrew) 2020-06-03 20:24:15 -07:00
bcma
block zcomp: Use ARRAY_SIZE() for backends list 2020-06-04 19:06:24 -07:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
bus bus: mhi: core: Fix some error return code 2020-05-15 16:32:20 +02:00
cdrom Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
clk Power management updates for 5.8-rc1 2020-06-02 13:17:23 -07:00
clocksource clocksource/drivers/timer-versatile: Clear OF_POPULATED flag 2020-05-23 00:03:25 +02:00
connector connector/cn_proc: Protect send_msg() with a local lock 2020-05-28 10:31:10 +02:00
counter counter: 104-quad-8: Add lock guards - generic interface 2020-04-19 17:50:00 +01:00
cpufreq MIPS updates for v5.8: 2020-06-03 13:32:21 -07:00
cpuidle cpuidle: Fix three reference count leaks 2020-05-29 18:07:18 +02:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
dax device-dax: add memory via add_memory_driver_managed() 2020-06-04 19:06:23 -07:00
dca
devfreq PM / devfreq: Use lockdep asserts instead of manual checks for locked mutex 2020-05-28 18:02:40 +09:00
dio
dma dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()' 2020-05-19 22:26:01 +05:30
dma-buf drm pull for 5.8-rc1 2020-06-02 15:04:15 -07:00
edac Merge branches 'edac-i10nm' and 'edac-misc' into edac-updates-for-5.8 2020-06-01 11:39:15 +02:00
eisa
extcon Char/Misc driver patches for 5.7-rc1 2020-04-03 13:22:40 -07:00
firewire firewire: switch ioctl_queue_iso to use of copy_from_user() 2020-04-23 10:51:05 -04:00
firmware Merge branch 'uaccess.access_ok' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-06-01 16:09:43 -07:00
fpga Merge branch 'uaccess.access_ok' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-06-01 16:09:43 -07:00
fsi
gnss
gpio The generic interrupt departement provides: 2020-06-03 10:05:11 -07:00
gpu drm: remove drm specific kmap_atomic code 2020-06-04 19:06:22 -07:00
greybus
hid HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A keyboard-dock 2020-05-04 11:24:58 +02:00
hsi
hv hyperv-next for 5.8 2020-06-03 15:00:05 -07:00
hwmon hwmon: Add Baikal-T1 PVT sensor driver 2020-05-28 07:59:45 -07:00
hwspinlock
hwtracing A fair amount of stuff this time around, dominated by yet another massive 2020-06-01 15:45:27 -07:00
i2c Merge branches 'pm-core' and 'pm-sleep' 2020-06-01 15:19:08 +02:00
i3c i3c master: GETMRL's 3rd byte is optional even with BCR_IBI_PAYLOAD 2020-04-16 14:27:46 +02:00
ide ide-cd: rename cdrom_read_tocentry 2020-05-04 10:13:42 -06:00
idle Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-03-30 16:40:08 -07:00
iio The generic interrupt departement provides: 2020-06-03 10:05:11 -07:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-05-28 12:41:11 -07:00
interconnect interconnect: qcom: Move the static keyword to the front of declaration 2020-04-29 13:11:44 +02:00
iommu iommu: Fix reference count leak in iommu_group_alloc. 2020-05-29 15:27:50 +02:00
ipack ipack: tpci200: fix error return code in tpci200_register() 2020-05-15 16:32:20 +02:00
irqchip irqchip: Fix "Loongson HyperTransport Vector support" driver build on all non-MIPS platforms 2020-06-01 09:48:52 +02:00
isdn mISDN: make dmril and dmrim static 2020-04-16 13:52:31 -07:00
leds mailmap: change email for Ricardo Ribalda 2020-05-25 18:59:59 -06:00
lightnvm for-5.8/block-2020-06-01 2020-06-02 15:29:19 -07:00
macintosh Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
mailbox
mcb
md for-5.8/drivers-2020-06-01 2020-06-02 15:37:03 -07:00
media media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
memory ARM: driver updates 2020-04-03 15:05:35 -07:00
memstick
message
mfd platform-drivers-x86 for v5.8-1 2020-06-02 12:56:58 -07:00
misc Power management updates for 5.8-rc1 2020-06-02 13:17:23 -07:00
mmc mmc: sdhci-msm: Clear tuning done flag while hs400 tuning 2020-06-01 08:04:40 +02:00
most most: core: use function subsys_initcall() 2020-04-28 15:04:09 +02:00
mtd for-5.8/block-2020-06-01 2020-06-02 15:29:19 -07:00
mux
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
nfc Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-06-01 12:00:10 -07:00
ntb pci-v5.7-changes 2020-04-03 14:25:02 -07:00
nubus
nvdimm nvdimm: use bio_{start,end}_io_acct 2020-05-27 05:21:23 -06:00
nvme Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
nvmem
of Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-04-25 20:18:53 -07:00
opp opp: Manage empty OPP tables with clk handle 2020-04-13 16:14:55 +05:30
oprofile drivers/oprofile: Open access for CAP_PERFMON privileged process 2020-04-16 12:19:09 -03:00
parisc parisc: Replace setup_irq() by request_irq() 2020-04-05 22:05:23 +02:00
parport sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
pci hyperv-next for 5.8 2020-06-03 15:00:05 -07:00
pcmcia powerpc: add an ioremap_phb helper 2020-06-02 10:59:10 -07:00
perf arm64 updates for 5.8 2020-06-01 15:18:27 -07:00
phy phy: qualcomm: usb-hs-28nm: Prepare clocks in init 2020-04-30 12:10:49 +05:30
pinctrl pinctrl: qcom: Add affinity callbacks to msmgpio IRQ chip 2020-05-12 14:29:29 +02:00
platform media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
pnp PNPBIOS: Replace zero-length array with flexible-array 2020-05-15 18:20:49 +02:00
power Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
powercap powercap: RAPL: remove unused local MSR define 2020-05-25 10:59:29 +02:00
pps
ps3 powerpc/ps3: Remove an unneeded NULL check 2020-04-03 00:09:59 +11:00
ptp ptp_clock: Let the ADJ_OFFSET interface respect the ADJ_NANO flag for PHC devices. 2020-05-25 17:55:17 -07:00
pwm pwm: pca9685: Fix PWM/GPIO inter-operation 2020-04-03 21:41:42 +02:00
rapidio rapidio: avoid data race between file operation callbacks and mport_cdev_add(). 2020-06-04 19:06:26 -07:00
ras
regulator Merge remote-tracking branch 'regulator/for-5.8' into regulator-linus 2020-06-01 13:01:44 +01:00
remoteproc remoteproc fixes for v5.7 2020-04-23 09:28:15 -07:00
reset
rpmsg rpmsg: pull in slab.h 2020-04-17 06:05:29 -04:00
rtc - New Drivers 2020-04-07 19:48:52 -07:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
sbus
scsi hyperv-next for 5.8 2020-06-03 15:00:05 -07:00
sfi
sh
siox
slimbus
soc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
soundwire Char/Misc driver patches for 5.7-rc1 2020-04-03 13:22:40 -07:00
spi Merge remote-tracking branch 'spi/for-5.8' into spi-next 2020-05-30 00:03:53 +01:00
spmi
ssb ssb: scan: fix block comments coding style issues 2020-04-28 12:02:22 +03:00
staging atomisp: avoid warning about unused function 2020-06-03 21:22:46 -07:00
target ipv4: add ip_sock_set_freebind 2020-05-28 11:11:45 -07:00
tc
tee ARM: driver updates 2020-04-03 15:05:35 -07:00
thermal - Convert tsens configuration DT binding to yaml (Rajeshwari) 2020-04-07 20:00:16 -07:00
thunderbolt thunderbolt: Check return value of tb_sw_read() in usb4_switch_op() 2020-04-28 19:00:59 +02:00
tty kgdb patches for 5.8-rc1 2020-06-03 14:57:03 -07:00
uio
usb usb: core: kcov: collect coverage from usb complete callback 2020-06-04 19:06:20 -07:00
vdpa vdpasim: remove unused variable 'ret' 2020-05-11 06:44:12 -04:00
vfio vfio/type1: Fix VA->PA translation for PFNMAP VMAs in vaddr_get_pfn() 2020-04-23 12:10:01 -06:00
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-24 13:47:27 -07:00
video drm pull for 5.8-rc1 2020-06-02 15:04:15 -07:00
virt
virtio virtio-balloon: Avoid using the word 'report' when referring to free page hinting 2020-04-17 06:05:30 -04:00
visorbus
vlynq
vme
w1
watchdog watchdog: iTCO: fix link error 2020-05-06 15:49:24 +03:00
xen xen: branch for v5.7-rc2 2020-04-17 10:35:17 -07:00
zorro SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
Kconfig virtio: fixes, vdpa 2020-04-08 10:51:53 -07:00
Makefile virtio: fixes, vdpa 2020-04-08 10:51:53 -07:00