Alexey Kardashevskiy
6289b028b5
powerpc/iommu: Annotate nested lock for lockdep
...
[ Upstream commit cc7130bf119add37f36238343a593b71ef6ecc1e ]
The IOMMU table is divided into pools for concurrent mappings and each
pool has a separate spinlock. When taking the ownership of an IOMMU group
to pass through a device to a VM, we lock these spinlocks which triggers
a false negative warning in lockdep (below).
This fixes it by annotating the large pool's spinlock as a nest lock
which makes lockdep not complaining when locking nested locks if
the nest lock is locked already.
===
WARNING: possible recursive locking detected
5.11.0-le_syzkaller_a+fstn1 #100 Not tainted
--------------------------------------------
qemu-system-ppc/4129 is trying to acquire lock:
c0000000119bddb0 (&(p->lock)/1){....}-{2:2}, at: iommu_take_ownership+0xac/0x1e0
but task is already holding lock:
c0000000119bdd30 (&(p->lock)/1){....}-{2:2}, at: iommu_take_ownership+0xac/0x1e0
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&(p->lock)/1);
lock(&(p->lock)/1);
===
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru >
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au >
Link: https://lore.kernel.org/r/20210301063653.51003-1-aik@ozlabs.ru
Signed-off-by: Sasha Levin <sashal@kernel.org >
2021-05-19 10:12:58 +02:00
..
2020-09-15 22:13:20 +10:00
2020-10-18 09:27:10 -07:00
2020-07-23 17:41:36 +10:00
2020-10-22 13:13:57 -07:00
2021-02-13 13:55:02 +01:00
2020-03-25 11:50:48 +01:00
2020-07-29 21:09:37 +10:00
2021-03-17 17:06:24 +01:00
2017-11-02 11:10:55 +01:00
2020-10-25 14:51:49 -07:00
2020-07-30 22:53:48 +10:00
2019-06-15 16:52:06 +10:00
2017-11-02 11:10:55 +01:00
2020-06-02 20:59:11 +10:00
2019-05-30 11:26:32 -07:00
2019-11-17 01:56:31 -06:00
2019-06-05 17:37:06 +02:00
2020-07-26 23:34:23 +10:00
2019-05-30 11:26:32 -07:00
2020-10-20 23:33:51 +11:00
2020-05-19 00:10:39 +10:00
2020-07-26 23:34:19 +10:00
2020-07-29 21:02:09 +10:00
2020-09-25 06:20:47 +02:00
2019-02-18 22:41:03 +11:00
2019-05-30 11:26:32 -07:00
2020-10-06 23:22:22 +11:00
2019-11-13 19:27:40 +11:00
2020-11-02 12:54:20 +11:00
2020-08-07 18:48:15 -07:00
2019-09-14 00:01:14 +10:00
2020-10-07 22:34:47 +11:00
2020-07-26 23:34:20 +10:00
2021-05-11 14:47:35 +02:00
2021-03-04 11:38:40 +01:00
2021-01-27 11:55:12 +01:00
2019-05-30 11:26:32 -07:00
2020-05-19 00:10:37 +10:00
2020-10-06 23:22:23 +11:00
2021-03-17 17:06:34 +01:00
2021-05-14 09:50:30 +02:00
2020-07-29 21:02:10 +10:00
2020-10-08 21:17:13 +11:00
2019-11-13 19:27:40 +11:00
2021-03-04 11:38:05 +01:00
2021-05-19 10:12:54 +02:00
2020-11-05 23:34:16 +11:00
2020-06-09 09:39:13 -07:00
2020-12-30 11:53:32 +01:00
2021-03-17 17:06:13 +01:00
2020-10-08 21:17:12 +11:00
2020-06-09 09:39:13 -07:00
2020-09-15 22:13:19 +10:00
2020-09-15 22:13:19 +10:00
2020-06-02 20:59:11 +10:00
2019-05-30 11:26:32 -07:00
2020-01-16 14:59:37 +10:00
2020-06-02 20:59:11 +10:00
2020-11-24 16:47:35 +01:00
2020-05-07 17:25:54 +10:00
2020-06-09 09:39:13 -07:00
2019-05-30 11:26:32 -07:00
2020-08-14 19:56:57 -07:00
2021-05-19 10:12:58 +02:00
2021-03-04 11:38:06 +01:00
2020-06-02 10:59:10 -07:00
2020-05-19 00:10:37 +10:00
2020-06-18 12:10:37 -07:00
2019-05-30 11:26:35 -07:00
2020-09-08 11:52:34 +02:00
2019-09-14 00:04:40 +10:00
2019-09-14 00:04:40 +10:00
2020-10-08 21:17:13 +11:00
2019-12-18 15:04:42 +01:00
2020-12-30 11:53:15 +01:00
2020-07-23 17:43:30 +10:00
2020-10-16 20:13:55 +11:00
2020-09-02 11:00:21 +10:00
2020-10-08 21:17:12 +11:00
2020-06-02 20:59:11 +10:00
2020-05-11 23:15:14 +10:00
2020-06-17 10:57:41 -07:00
2020-07-27 00:01:30 +10:00
2019-05-30 11:26:32 -07:00
2019-08-30 09:40:15 +10:00
2020-06-05 12:39:30 -07:00
2020-07-26 23:34:19 +10:00
2020-05-19 00:10:39 +10:00
2020-05-26 23:36:57 +10:00
2020-12-30 11:53:15 +01:00
2019-08-22 23:11:48 +10:00
2020-06-05 12:39:30 -07:00
2020-07-26 23:34:21 +10:00
2020-01-06 16:25:29 +11:00
2021-03-17 17:06:23 +01:00
2020-05-18 21:58:44 +10:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-04-04 21:40:57 +11:00
2020-02-04 03:05:26 +00:00
2021-03-17 17:06:24 +01:00
2019-10-29 15:12:17 +11:00
2021-03-04 11:38:35 +01:00
2017-11-02 11:10:55 +01:00
2021-05-14 09:50:30 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-02-04 03:05:26 +00:00
2020-06-09 09:39:13 -07:00
2020-02-04 03:05:26 +00:00
2018-06-03 20:43:33 +10:00
2020-12-30 11:54:15 +01:00
2020-07-16 13:12:38 +10:00
2020-07-16 14:49:53 +10:00
2020-10-08 12:50:52 +11:00
2019-11-13 00:33:22 +11:00
2019-11-13 00:33:22 +11:00
2021-05-19 10:12:54 +02:00
2021-05-11 14:47:35 +02:00
2020-12-30 11:53:01 +01:00
2020-12-30 11:53:15 +01:00
2020-07-15 12:04:40 +10:00
2020-07-15 12:04:40 +10:00
2020-10-23 10:06:38 -07:00
2020-04-01 13:42:13 +11:00
2017-11-02 11:10:55 +01:00
2021-05-19 10:12:57 +02:00
2020-06-09 09:39:13 -07:00
2019-06-14 10:48:56 +02:00
2020-06-02 20:59:11 +10:00
2019-06-19 17:11:22 +02:00
2019-06-19 17:11:22 +02:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-11-19 23:47:20 +11:00
2019-11-15 14:38:29 +01:00
2020-09-18 20:05:24 +10:00
2019-05-30 11:26:32 -07:00
2020-04-01 13:42:13 +11:00
2020-09-15 22:13:30 +10:00
2021-03-04 11:38:01 +01:00
2020-10-06 23:22:25 +11:00
2021-03-17 17:06:23 +01:00
2019-08-30 09:40:15 +10:00
2019-05-30 11:26:32 -07:00
2019-10-11 19:33:25 +11:00
2020-05-26 23:36:51 +10:00
2021-02-13 13:55:02 +01:00
2020-05-19 00:10:37 +10:00
2020-07-16 13:00:24 +10:00
2021-01-27 11:55:12 +01:00
2019-04-30 11:31:02 +10:00