Qian Cai
c9790fb5df
powerpc/powernv/pci: fix a RCU-list lock
...
It is unsafe to traverse tbl->it_group_list without the RCU read lock.
WARNING: suspicious RCU usage
5.7.0-rc4-next-20200508 #1 Not tainted
-----------------------------
arch/powerpc/platforms/powernv/pci-ioda-tce.c:355 RCU-list traversed in non-reader section!!
other info that might help us debug this:
rcu_scheduler_active = 2, debug_locks = 1
3 locks held by qemu-kvm/4305:
#0 : c000000bc3fe6988 (&container->group_lock){++++}-{3:3}, at: vfio_fops_unl_ioctl+0x108/0x410 [vfio]
#1 : c00800000fcc7400 (&vfio.iommu_drivers_lock){+.+.}-{3:3}, at: vfio_fops_unl_ioctl+0x148/0x410 [vfio]
#2 : c000000bc3fe4d68 (&container->lock){+.+.}-{3:3}, at: tce_iommu_attach_group+0x3c/0x4f0 [vfio_iommu_spapr_tce]
stack backtrace:
CPU: 4 PID: 4305 Comm: qemu-kvm Not tainted 5.7.0-rc4-next-20200508 #1
Call Trace:
[c0000010f29afa60] [c0000000007154c8] dump_stack+0xfc/0x174 (unreliable)
[c0000010f29afab0] [c0000000001d8ff0] lockdep_rcu_suspicious+0x140/0x164
[c0000010f29afb30] [c0000000000dae2c] pnv_pci_unlink_table_and_group+0x11c/0x200
[c0000010f29afb70] [c0000000000d4a34] pnv_pci_ioda2_unset_window+0xc4/0x190
[c0000010f29afbf0] [c0000000000d4b4c] pnv_ioda2_take_ownership+0x4c/0xd0
[c0000010f29afc30] [c00800000fd60ee0] tce_iommu_attach_group+0x2c8/0x4f0 [vfio_iommu_spapr_tce]
[c0000010f29afcd0] [c00800000fcc11a0] vfio_fops_unl_ioctl+0x238/0x410 [vfio]
[c0000010f29afd50] [c0000000005430a8] ksys_ioctl+0xd8/0x130
[c0000010f29afda0] [c000000000543128] sys_ioctl+0x28/0x40
[c0000010f29afdc0] [c000000000038af4] system_call_exception+0x114/0x1e0
[c0000010f29afe20] [c00000000000c8f0] system_call_common+0xf0/0x278
Signed-off-by: Qian Cai <cai@lca.pw>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200510051347.1906-1-cai@lca.pw
2021-01-31 22:35:49 +11:00
..
2019-05-30 11:26:32 -07:00
2020-10-06 23:22:25 +11:00
2020-12-07 23:26:02 +11:00
2020-11-19 16:57:00 +11:00
2020-07-26 23:34:22 +10:00
2020-11-19 16:57:00 +11:00
2020-12-04 16:55:31 +11:00
2020-12-04 01:01:30 +11:00
2020-07-29 21:09:37 +10:00
2019-11-13 00:33:22 +11:00
2020-09-18 19:59:45 +10:00
2020-10-19 22:58:52 +11:00
2020-12-15 22:53:27 +11:00
2020-05-11 23:15:15 +10:00
2019-09-14 00:04:46 +10:00
2019-05-30 11:26:32 -07:00
2020-12-04 01:01:23 +11:00
2020-04-03 00:09:58 +11:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2020-08-25 01:31:33 +10:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-11-13 16:58:06 +11:00
2020-08-25 01:31:33 +10:00
2019-11-13 16:58:06 +11:00
2019-05-30 11:26:32 -07:00
2019-11-13 00:33:22 +11:00
2019-11-13 16:58:06 +11:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-01-06 09:46:51 +09:00
2019-05-30 11:26:32 -07:00
2019-08-05 18:53:03 +10:00
2020-12-09 23:48:15 +11:00
2019-05-30 11:26:32 -07:00
2021-01-31 22:35:49 +11:00
2020-12-04 01:01:34 +11:00
2020-11-19 16:56:54 +11:00
2020-07-26 23:34:21 +10:00
2020-07-27 00:01:32 +10:00
2020-08-25 01:31:33 +10:00
2020-08-25 01:31:33 +10:00
2020-12-02 23:16:40 +11:00
2020-11-27 00:10:39 +11:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-08-30 09:40:16 +10:00
2020-04-20 16:53:14 +10:00
2020-04-20 16:53:00 +10:00
2020-07-15 23:09:55 +10:00
2018-03-14 20:13:58 +11:00
2020-08-25 01:31:33 +10:00
2021-01-30 11:39:31 +11:00
2021-01-30 11:39:31 +11:00