public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [syzbot] [iommu?] WARNING in pt_iommu_amdv1_init
@ 2026-03-24  0:04 syzbot
  2026-03-24 14:37 ` Pranjal Shrivastava
  2026-03-26 10:31 ` syzbot
  0 siblings, 2 replies; 5+ messages in thread
From: syzbot @ 2026-03-24  0:04 UTC (permalink / raw)
  To: iommu, jgg, joro, kevin.tian, linux-kernel, robin.murphy,
	syzkaller-bugs, will

Hello,

syzbot found the following issue on:

HEAD commit:    0e4f8f1a3d08 Merge tag 'parisc-for-7.0-rc5' of git://git.k..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=176df352580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=5a3e5e8c17cc174e
dashboard link: https://syzkaller.appspot.com/bug?extid=453eb7add07c3767adab
compiler:       gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-0e4f8f1a.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/838ecdb7b55f/vmlinux-0e4f8f1a.xz
kernel image: https://storage.googleapis.com/syzbot-assets/3742378914db/bzImage-0e4f8f1a.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+453eb7add07c3767adab@syzkaller.appspotmail.com

iommufd_mock iommufd_mock1: Adding to iommu group 10
------------[ cut here ]------------
!iommu_table->driver_ops || !iommu_table->driver_ops->change_top || !iommu_table->driver_ops->get_top_lock
WARNING: drivers/iommu/generic_pt/fmt/../iommu_pt.h:1249 at pt_iommu_amdv1_init+0xa10/0xb20 drivers/iommu/generic_pt/iommu_pt.h:1249, CPU#1: syz.0.1303/9714
Modules linked in:
CPU: 1 UID: 0 PID: 9714 Comm: syz.0.1303 Tainted: G             L      syzkaller #0 PREEMPT(full) 
Tainted: [L]=SOFTLOCKUP
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:pt_iommu_amdv1_init+0xa10/0xb20 drivers/iommu/generic_pt/iommu_pt.h:1249
Code: e8 95 a4 e7 fc e9 aa f6 ff ff e8 db 18 7b fc 89 ab 94 00 00 00 e9 15 ff ff ff e8 cb 18 7b fc e9 e4 fd ff ff e8 c1 18 7b fc 90 <0f> 0b 90 e9 19 ff ff ff bd a1 ff ff ff e9 cc fd ff ff 4c 89 cf 4c
RSP: 0018:ffffc90003747a68 EFLAGS: 00010287
RAX: 00000000000007ee RBX: ffff88802bb03500 RCX: ffffc9000407a000
RDX: 0000000000080000 RSI: ffffffff858db73f RDI: ffff888026f94980
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000034 R11: 0000000000000000 R12: 0000000000000034
R13: 0000000000000040 R14: 0000000000000000 R15: 0000000000000034
FS:  00007f29a60136c0(0000) GS:ffff8880d6442000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000110c3f39c7 CR3: 000000003d1d7000 CR4: 0000000000352ef0
Call Trace:
 <TASK>
 mock_domain_alloc_pgtable drivers/iommu/iommufd/selftest.c:491 [inline]
 mock_domain_alloc_paging_flags+0x29b/0x680 drivers/iommu/iommufd/selftest.c:548
 iommufd_hwpt_paging_alloc+0x393/0xb20 drivers/iommu/iommufd/hw_pagetable.c:149
 iommufd_hwpt_alloc+0xb46/0x1af0 drivers/iommu/iommufd/hw_pagetable.c:369
 iommufd_fops_ioctl+0x358/0x520 drivers/iommu/iommufd/main.c:533
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:597 [inline]
 __se_sys_ioctl fs/ioctl.c:583 [inline]
 __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x106/0xf80 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f29a519c799
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f29a6013028 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f29a5415fa0 RCX: 00007f29a519c799
RDX: 0000200000000200 RSI: 0000000000003b89 RDI: 0000000000000009
RBP: 00007f29a5232c99 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f29a5416038 R14: 00007f29a5415fa0 R15: 00007ffedd2b95c8
 </TASK>


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [syzbot] [iommu?] WARNING in pt_iommu_amdv1_init
  2026-03-24  0:04 [syzbot] [iommu?] WARNING in pt_iommu_amdv1_init syzbot
@ 2026-03-24 14:37 ` Pranjal Shrivastava
  2026-03-25  5:19   ` Ankit Soni
  2026-03-26 10:31 ` syzbot
  1 sibling, 1 reply; 5+ messages in thread
From: Pranjal Shrivastava @ 2026-03-24 14:37 UTC (permalink / raw)
  To: syzbot
  Cc: iommu, jgg, joro, kevin.tian, linux-kernel, robin.murphy,
	syzkaller-bugs, will

On Mon, Mar 23, 2026 at 05:04:27PM -0700, syzbot wrote:
> Hello,
> 
> syzbot found the following issue on:
> 
> HEAD commit:    0e4f8f1a3d08 Merge tag 'parisc-for-7.0-rc5' of git://git.k..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=176df352580000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=5a3e5e8c17cc174e
> dashboard link: https://syzkaller.appspot.com/bug?extid=453eb7add07c3767adab
> compiler:       gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
> 
> Unfortunately, I don't have any reproducer for this issue yet.
> 
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-0e4f8f1a.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/838ecdb7b55f/vmlinux-0e4f8f1a.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/3742378914db/bzImage-0e4f8f1a.xz
> 
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+453eb7add07c3767adab@syzkaller.appspotmail.com
> 
> iommufd_mock iommufd_mock1: Adding to iommu group 10
> ------------[ cut here ]------------
> !iommu_table->driver_ops || !iommu_table->driver_ops->change_top || !iommu_table->driver_ops->get_top_lock
> WARNING: drivers/iommu/generic_pt/fmt/../iommu_pt.h:1249 at pt_iommu_amdv1_init+0xa10/0xb20 drivers/iommu/generic_pt/iommu_pt.h:1249, CPU#1: syz.0.1303/9714
> Modules linked in:
> CPU: 1 UID: 0 PID: 9714 Comm: syz.0.1303 Tainted: G             L      syzkaller #0 PREEMPT(full) 
> Tainted: [L]=SOFTLOCKUP
> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
> RIP: 0010:pt_iommu_amdv1_init+0xa10/0xb20 drivers/iommu/generic_pt/iommu_pt.h:1249
> Code: e8 95 a4 e7 fc e9 aa f6 ff ff e8 db 18 7b fc 89 ab 94 00 00 00 e9 15 ff ff ff e8 cb 18 7b fc e9 e4 fd ff ff e8 c1 18 7b fc 90 <0f> 0b 90 e9 19 ff ff ff bd a1 ff ff ff e9 cc fd ff ff 4c 89 cf 4c
> RSP: 0018:ffffc90003747a68 EFLAGS: 00010287
> RAX: 00000000000007ee RBX: ffff88802bb03500 RCX: ffffc9000407a000
> RDX: 0000000000080000 RSI: ffffffff858db73f RDI: ffff888026f94980
> RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
> R10: 0000000000000034 R11: 0000000000000000 R12: 0000000000000034
> R13: 0000000000000040 R14: 0000000000000000 R15: 0000000000000034
> FS:  00007f29a60136c0(0000) GS:ffff8880d6442000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 000000110c3f39c7 CR3: 000000003d1d7000 CR4: 0000000000352ef0
> Call Trace:
>  <TASK>
>  mock_domain_alloc_pgtable drivers/iommu/iommufd/selftest.c:491 [inline]
>  mock_domain_alloc_paging_flags+0x29b/0x680 drivers/iommu/iommufd/selftest.c:548
>  iommufd_hwpt_paging_alloc+0x393/0xb20 drivers/iommu/iommufd/hw_pagetable.c:149
>  iommufd_hwpt_alloc+0xb46/0x1af0 drivers/iommu/iommufd/hw_pagetable.c:369
>  iommufd_fops_ioctl+0x358/0x520 drivers/iommu/iommufd/main.c:533
>  vfs_ioctl fs/ioctl.c:51 [inline]
>  __do_sys_ioctl fs/ioctl.c:597 [inline]
>  __se_sys_ioctl fs/ioctl.c:583 [inline]
>  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
>  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
>  do_syscall_64+0x106/0xf80 arch/x86/entry/syscall_64.c:94
>  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> RIP: 0033:0x7f29a519c799
> Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
> RSP: 002b:00007f29a6013028 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> RAX: ffffffffffffffda RBX: 00007f29a5415fa0 RCX: 00007f29a519c799
> RDX: 0000200000000200 RSI: 0000000000003b89 RDI: 0000000000000009
> RBP: 00007f29a5232c99 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007f29a5416038 R14: 00007f29a5415fa0 R15: 00007ffedd2b95c8
>  </TASK>
> 
> 

I believe this is because we don't populate struct pt_iommu_driver_ops
for the "mock" iommu / selftest? Would defining mock ops help fix this?

I have a patch that seems to fix the WARN_ON:

diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selftest.c
index 9607416f8069..1599eb737d2a 100644
--- a/drivers/iommu/iommufd/selftest.c
+++ b/drivers/iommu/iommufd/selftest.c
@@ -119,6 +119,7 @@ struct mock_iommu_domain {
 		struct pt_iommu_amdv1 amdv1;
 	};
 	unsigned long flags;
+	spinlock_t lock;
 };
 PT_IOMMU_CHECK_DOMAIN(struct mock_iommu_domain, iommu, domain);
 PT_IOMMU_CHECK_DOMAIN(struct mock_iommu_domain, amdv1.iommu, domain);
@@ -129,6 +130,29 @@ to_mock_domain(struct iommu_domain *domain)
 	return container_of(domain, struct mock_iommu_domain, domain);
 }
 
+static void mock_domain_change_top(struct pt_iommu *iommu_table,
+				   phys_addr_t top_paddr,
+				   unsigned int top_level)
+{
+	/*
+	 * The selftest doesn't have real hardware, so there is no need to
+	 * perform any root table moves.
+	 */
+}
+
+static spinlock_t *mock_domain_get_top_lock(struct pt_iommu *iommu_table)
+{
+	struct mock_iommu_domain *mock =
+		container_of(iommu_table, struct mock_iommu_domain, iommu);
+
+	return &mock->lock;
+}
+
+static const struct pt_iommu_driver_ops mock_driver_ops = {
+	.change_top = &mock_domain_change_top,
+	.get_top_lock = &mock_domain_get_top_lock,
+};
+
 struct mock_iommu_domain_nested {
 	struct iommu_domain domain;
 	struct mock_viommu *mock_viommu;
@@ -445,6 +469,8 @@ mock_domain_alloc_pgtable(struct device *dev,
 	if (!mock)
 		return ERR_PTR(-ENOMEM);
 	mock->domain.type = IOMMU_DOMAIN_UNMANAGED;
+	spin_lock_init(&mock->lock);
+	mock->amdv1.iommu.driver_ops = &mock_driver_ops;
 
 	mock->amdv1.iommu.nid = NUMA_NO_NODE;
 

LMK, if I shall send this as a separate patch?

Thanks,
Praan

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [syzbot] [iommu?] WARNING in pt_iommu_amdv1_init
  2026-03-24 14:37 ` Pranjal Shrivastava
@ 2026-03-25  5:19   ` Ankit Soni
  2026-03-25  9:42     ` Pranjal Shrivastava
  0 siblings, 1 reply; 5+ messages in thread
From: Ankit Soni @ 2026-03-25  5:19 UTC (permalink / raw)
  To: Pranjal Shrivastava
  Cc: syzbot, iommu, jgg, joro, kevin.tian, linux-kernel, robin.murphy,
	syzkaller-bugs, will

On Tue, Mar 24, 2026 at 02:37:41PM +0000, Pranjal Shrivastava wrote:
> On Mon, Mar 23, 2026 at 05:04:27PM -0700, syzbot wrote:
> > Hello,
> > 
> > syzbot found the following issue on:
> > 
> > HEAD commit:    0e4f8f1a3d08 Merge tag 'parisc-for-7.0-rc5' of git://git.k..
> > git tree:       upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=176df352580000
> > kernel config:  https://syzkaller.appspot.com/x/.config?x=5a3e5e8c17cc174e
> > dashboard link: https://syzkaller.appspot.com/bug?extid=453eb7add07c3767adab
> > compiler:       gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
> > 
> > Unfortunately, I don't have any reproducer for this issue yet.
> > 
> > Downloadable assets:
> > disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-0e4f8f1a.raw.xz
> > vmlinux: https://storage.googleapis.com/syzbot-assets/838ecdb7b55f/vmlinux-0e4f8f1a.xz
> > kernel image: https://storage.googleapis.com/syzbot-assets/3742378914db/bzImage-0e4f8f1a.xz
> > 
> > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > Reported-by: syzbot+453eb7add07c3767adab@syzkaller.appspotmail.com
> > 
> > iommufd_mock iommufd_mock1: Adding to iommu group 10
> > ------------[ cut here ]------------
> > !iommu_table->driver_ops || !iommu_table->driver_ops->change_top || !iommu_table->driver_ops->get_top_lock
> > WARNING: drivers/iommu/generic_pt/fmt/../iommu_pt.h:1249 at pt_iommu_amdv1_init+0xa10/0xb20 drivers/iommu/generic_pt/iommu_pt.h:1249, CPU#1: syz.0.1303/9714
> > Modules linked in:
> > CPU: 1 UID: 0 PID: 9714 Comm: syz.0.1303 Tainted: G             L      syzkaller #0 PREEMPT(full) 
> > Tainted: [L]=SOFTLOCKUP
> > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
> > RIP: 0010:pt_iommu_amdv1_init+0xa10/0xb20 drivers/iommu/generic_pt/iommu_pt.h:1249
> > Code: e8 95 a4 e7 fc e9 aa f6 ff ff e8 db 18 7b fc 89 ab 94 00 00 00 e9 15 ff ff ff e8 cb 18 7b fc e9 e4 fd ff ff e8 c1 18 7b fc 90 <0f> 0b 90 e9 19 ff ff ff bd a1 ff ff ff e9 cc fd ff ff 4c 89 cf 4c
> > RSP: 0018:ffffc90003747a68 EFLAGS: 00010287
> > RAX: 00000000000007ee RBX: ffff88802bb03500 RCX: ffffc9000407a000
> > RDX: 0000000000080000 RSI: ffffffff858db73f RDI: ffff888026f94980
> > RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
> > R10: 0000000000000034 R11: 0000000000000000 R12: 0000000000000034
> > R13: 0000000000000040 R14: 0000000000000000 R15: 0000000000000034
> > FS:  00007f29a60136c0(0000) GS:ffff8880d6442000(0000) knlGS:0000000000000000
> > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 000000110c3f39c7 CR3: 000000003d1d7000 CR4: 0000000000352ef0
> > Call Trace:
> >  <TASK>
> >  mock_domain_alloc_pgtable drivers/iommu/iommufd/selftest.c:491 [inline]
> >  mock_domain_alloc_paging_flags+0x29b/0x680 drivers/iommu/iommufd/selftest.c:548
> >  iommufd_hwpt_paging_alloc+0x393/0xb20 drivers/iommu/iommufd/hw_pagetable.c:149
> >  iommufd_hwpt_alloc+0xb46/0x1af0 drivers/iommu/iommufd/hw_pagetable.c:369
> >  iommufd_fops_ioctl+0x358/0x520 drivers/iommu/iommufd/main.c:533
> >  vfs_ioctl fs/ioctl.c:51 [inline]
> >  __do_sys_ioctl fs/ioctl.c:597 [inline]
> >  __se_sys_ioctl fs/ioctl.c:583 [inline]
> >  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
> >  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> >  do_syscall_64+0x106/0xf80 arch/x86/entry/syscall_64.c:94
> >  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> > RIP: 0033:0x7f29a519c799
> > Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
> > RSP: 002b:00007f29a6013028 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> > RAX: ffffffffffffffda RBX: 00007f29a5415fa0 RCX: 00007f29a519c799
> > RDX: 0000200000000200 RSI: 0000000000003b89 RDI: 0000000000000009
> > RBP: 00007f29a5232c99 R08: 0000000000000000 R09: 0000000000000000
> > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> > R13: 00007f29a5416038 R14: 00007f29a5415fa0 R15: 00007ffedd2b95c8
> >  </TASK>
> > 
> > 
> 
> I believe this is because we don't populate struct pt_iommu_driver_ops
> for the "mock" iommu / selftest? Would defining mock ops help fix this?
> 
> I have a patch that seems to fix the WARN_ON:
> 
> diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selftest.c
> index 9607416f8069..1599eb737d2a 100644
> --- a/drivers/iommu/iommufd/selftest.c
> +++ b/drivers/iommu/iommufd/selftest.c
> @@ -119,6 +119,7 @@ struct mock_iommu_domain {
>  		struct pt_iommu_amdv1 amdv1;
>  	};
>  	unsigned long flags;
> +	spinlock_t lock;

May be top_lock for consistency with kunit?
Otherwise looks good to me.

-Ankit

>  };
>  PT_IOMMU_CHECK_DOMAIN(struct mock_iommu_domain, iommu, domain);
>  PT_IOMMU_CHECK_DOMAIN(struct mock_iommu_domain, amdv1.iommu, domain);
> @@ -129,6 +130,29 @@ to_mock_domain(struct iommu_domain *domain)
>  	return container_of(domain, struct mock_iommu_domain, domain);
>  }
>  
> +static void mock_domain_change_top(struct pt_iommu *iommu_table,
> +				   phys_addr_t top_paddr,
> +				   unsigned int top_level)
> +{
> +	/*
> +	 * The selftest doesn't have real hardware, so there is no need to
> +	 * perform any root table moves.
> +	 */
> +}
> +
> +static spinlock_t *mock_domain_get_top_lock(struct pt_iommu *iommu_table)
> +{
> +	struct mock_iommu_domain *mock =
> +		container_of(iommu_table, struct mock_iommu_domain, iommu);
> +
> +	return &mock->lock;
> +}
> +
> +static const struct pt_iommu_driver_ops mock_driver_ops = {
> +	.change_top = &mock_domain_change_top,
> +	.get_top_lock = &mock_domain_get_top_lock,
> +};
> +
>  struct mock_iommu_domain_nested {
>  	struct iommu_domain domain;
>  	struct mock_viommu *mock_viommu;
> @@ -445,6 +469,8 @@ mock_domain_alloc_pgtable(struct device *dev,
>  	if (!mock)
>  		return ERR_PTR(-ENOMEM);
>  	mock->domain.type = IOMMU_DOMAIN_UNMANAGED;
> +	spin_lock_init(&mock->lock);
> +	mock->amdv1.iommu.driver_ops = &mock_driver_ops;
>  
>  	mock->amdv1.iommu.nid = NUMA_NO_NODE;
>  
> 
> LMK, if I shall send this as a separate patch?
> 
> Thanks,
> Praan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [syzbot] [iommu?] WARNING in pt_iommu_amdv1_init
  2026-03-25  5:19   ` Ankit Soni
@ 2026-03-25  9:42     ` Pranjal Shrivastava
  0 siblings, 0 replies; 5+ messages in thread
From: Pranjal Shrivastava @ 2026-03-25  9:42 UTC (permalink / raw)
  To: Ankit Soni
  Cc: syzbot, iommu, jgg, joro, kevin.tian, linux-kernel, robin.murphy,
	syzkaller-bugs, will

On Wed, Mar 25, 2026 at 05:19:51AM +0000, Ankit Soni wrote:
> On Tue, Mar 24, 2026 at 02:37:41PM +0000, Pranjal Shrivastava wrote:
> > On Mon, Mar 23, 2026 at 05:04:27PM -0700, syzbot wrote:
> > > Hello,
> > > 
> > > syzbot found the following issue on:
> > > 
> > > HEAD commit:    0e4f8f1a3d08 Merge tag 'parisc-for-7.0-rc5' of git://git.k..
> > > git tree:       upstream
> > > console output: https://syzkaller.appspot.com/x/log.txt?x=176df352580000
> > > kernel config:  https://syzkaller.appspot.com/x/.config?x=5a3e5e8c17cc174e
> > > dashboard link: https://syzkaller.appspot.com/bug?extid=453eb7add07c3767adab
> > > compiler:       gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
> > > 
> > > Unfortunately, I don't have any reproducer for this issue yet.
> > > 
> > > Downloadable assets:
> > > disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-0e4f8f1a.raw.xz
> > > vmlinux: https://storage.googleapis.com/syzbot-assets/838ecdb7b55f/vmlinux-0e4f8f1a.xz
> > > kernel image: https://storage.googleapis.com/syzbot-assets/3742378914db/bzImage-0e4f8f1a.xz
> > > 
> > > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > > Reported-by: syzbot+453eb7add07c3767adab@syzkaller.appspotmail.com
> > > 
> > > iommufd_mock iommufd_mock1: Adding to iommu group 10
> > > ------------[ cut here ]------------
> > > !iommu_table->driver_ops || !iommu_table->driver_ops->change_top || !iommu_table->driver_ops->get_top_lock
> > > WARNING: drivers/iommu/generic_pt/fmt/../iommu_pt.h:1249 at pt_iommu_amdv1_init+0xa10/0xb20 drivers/iommu/generic_pt/iommu_pt.h:1249, CPU#1: syz.0.1303/9714
> > > Modules linked in:
> > > CPU: 1 UID: 0 PID: 9714 Comm: syz.0.1303 Tainted: G             L      syzkaller #0 PREEMPT(full) 
> > > Tainted: [L]=SOFTLOCKUP
> > > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
> > > RIP: 0010:pt_iommu_amdv1_init+0xa10/0xb20 drivers/iommu/generic_pt/iommu_pt.h:1249
> > > Code: e8 95 a4 e7 fc e9 aa f6 ff ff e8 db 18 7b fc 89 ab 94 00 00 00 e9 15 ff ff ff e8 cb 18 7b fc e9 e4 fd ff ff e8 c1 18 7b fc 90 <0f> 0b 90 e9 19 ff ff ff bd a1 ff ff ff e9 cc fd ff ff 4c 89 cf 4c
> > > RSP: 0018:ffffc90003747a68 EFLAGS: 00010287
> > > RAX: 00000000000007ee RBX: ffff88802bb03500 RCX: ffffc9000407a000
> > > RDX: 0000000000080000 RSI: ffffffff858db73f RDI: ffff888026f94980
> > > RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
> > > R10: 0000000000000034 R11: 0000000000000000 R12: 0000000000000034
> > > R13: 0000000000000040 R14: 0000000000000000 R15: 0000000000000034
> > > FS:  00007f29a60136c0(0000) GS:ffff8880d6442000(0000) knlGS:0000000000000000
> > > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > CR2: 000000110c3f39c7 CR3: 000000003d1d7000 CR4: 0000000000352ef0
> > > Call Trace:
> > >  <TASK>
> > >  mock_domain_alloc_pgtable drivers/iommu/iommufd/selftest.c:491 [inline]
> > >  mock_domain_alloc_paging_flags+0x29b/0x680 drivers/iommu/iommufd/selftest.c:548
> > >  iommufd_hwpt_paging_alloc+0x393/0xb20 drivers/iommu/iommufd/hw_pagetable.c:149
> > >  iommufd_hwpt_alloc+0xb46/0x1af0 drivers/iommu/iommufd/hw_pagetable.c:369
> > >  iommufd_fops_ioctl+0x358/0x520 drivers/iommu/iommufd/main.c:533
> > >  vfs_ioctl fs/ioctl.c:51 [inline]
> > >  __do_sys_ioctl fs/ioctl.c:597 [inline]
> > >  __se_sys_ioctl fs/ioctl.c:583 [inline]
> > >  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
> > >  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> > >  do_syscall_64+0x106/0xf80 arch/x86/entry/syscall_64.c:94
> > >  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> > > RIP: 0033:0x7f29a519c799
> > > Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
> > > RSP: 002b:00007f29a6013028 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> > > RAX: ffffffffffffffda RBX: 00007f29a5415fa0 RCX: 00007f29a519c799
> > > RDX: 0000200000000200 RSI: 0000000000003b89 RDI: 0000000000000009
> > > RBP: 00007f29a5232c99 R08: 0000000000000000 R09: 0000000000000000
> > > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> > > R13: 00007f29a5416038 R14: 00007f29a5415fa0 R15: 00007ffedd2b95c8
> > >  </TASK>
> > > 
> > > 
> > 
> > I believe this is because we don't populate struct pt_iommu_driver_ops
> > for the "mock" iommu / selftest? Would defining mock ops help fix this?
> > 
> > I have a patch that seems to fix the WARN_ON:
> > 
> > diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selftest.c
> > index 9607416f8069..1599eb737d2a 100644
> > --- a/drivers/iommu/iommufd/selftest.c
> > +++ b/drivers/iommu/iommufd/selftest.c
> > @@ -119,6 +119,7 @@ struct mock_iommu_domain {
> >  		struct pt_iommu_amdv1 amdv1;
> >  	};
> >  	unsigned long flags;
> > +	spinlock_t lock;
> 
> May be top_lock for consistency with kunit?
> Otherwise looks good to me.
> 
> -Ankit
> 

Ack. Sure, I'll send out a patch. Thanks!

Thanks,
Praan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [syzbot] [iommu?] WARNING in pt_iommu_amdv1_init
  2026-03-24  0:04 [syzbot] [iommu?] WARNING in pt_iommu_amdv1_init syzbot
  2026-03-24 14:37 ` Pranjal Shrivastava
@ 2026-03-26 10:31 ` syzbot
  1 sibling, 0 replies; 5+ messages in thread
From: syzbot @ 2026-03-26 10:31 UTC (permalink / raw)
  To: ankit.soni, iommu, jgg, joro, kevin.tian, linux-kernel, praan,
	robin.murphy, skhawaja, syzkaller-bugs, will

syzbot has found a reproducer for the following issue on:

HEAD commit:    d2a43e7f89da Merge tag 'hardening-v7.0-rc6' of git://git.k..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=12f4d06a580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=d46eab0cfd31c214
dashboard link: https://syzkaller.appspot.com/bug?extid=453eb7add07c3767adab
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=12cfa1d6580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=13beecca580000

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-d2a43e7f.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/971507ed4baf/vmlinux-d2a43e7f.xz
kernel image: https://storage.googleapis.com/syzbot-assets/c5926dab5b8b/bzImage-d2a43e7f.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+453eb7add07c3767adab@syzkaller.appspotmail.com

iommufd_mock iommufd_mock0: Adding to iommu group 11
------------[ cut here ]------------
!iommu_table->driver_ops || !iommu_table->driver_ops->change_top || !iommu_table->driver_ops->get_top_lock
WARNING: drivers/iommu/generic_pt/fmt/../iommu_pt.h:1251 at pt_iommu_amdv1_init+0x631/0x9f0 drivers/iommu/generic_pt/iommu_pt.h:1249, CPU#0: syz.0.17/5472
Modules linked in:
CPU: 0 UID: 0 PID: 5472 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:pt_iommu_amdv1_init+0x631/0x9f0 drivers/iommu/generic_pt/iommu_pt.h:1249
Code: 48 89 df 44 89 fa e8 de 05 00 00 48 89 c3 48 3d 01 f0 ff ff 72 1e e8 de 77 6f fc eb 5e e8 d7 77 6f fc eb 05 e8 d0 77 6f fc 90 <0f> 0b 90 bb ea ff ff ff eb 47 e8 c0 77 6f fc 43 80 7c 35 00 00 74
RSP: 0018:ffffc9000e277a20 EFLAGS: 00010293
RAX: ffffffff855639f9 RBX: 0000000000000000 RCX: ffff8880369c24c0
RDX: 0000000000000000 RSI: 0000000000000034 RDI: 0000000000000000
RBP: ffff8880540f4f70 R08: ffff8880540f4f97 R09: 0000000000000000
R10: ffff8880540f4f68 R11: ffffed100a81e9f3 R12: ffff8880540f4f88
R13: 1ffff1100a81e9f1 R14: dffffc0000000000 R15: 0000000000000cc0
FS:  000055558cba0500(0000) GS:ffff88808ca51000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 0000000037dbd000 CR4: 0000000000352ef0
Call Trace:
 <TASK>
 mock_domain_alloc_pgtable drivers/iommu/iommufd/selftest.c:491 [inline]
 mock_domain_alloc_paging_flags+0x3ba/0x780 drivers/iommu/iommufd/selftest.c:548
 iommufd_hwpt_paging_alloc+0x3ab/0x830 drivers/iommu/iommufd/hw_pagetable.c:149
 iommufd_hwpt_alloc+0x496/0xc10 drivers/iommu/iommufd/hw_pagetable.c:369
 iommufd_fops_ioctl+0x4b5/0x5d0 drivers/iommu/iommufd/main.c:533
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:597 [inline]
 __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x14d/0xf80 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f7b6999c799
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffd240fb7c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f7b69c15fa0 RCX: 00007f7b6999c799
RDX: 0000200000000200 RSI: 0000000000003b89 RDI: 0000000000000008
RBP: 00007f7b69a32c99 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f7b69c15fac R14: 00007f7b69c15fa0 R15: 00007f7b69c15fa0
 </TASK>


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-03-26 10:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-24  0:04 [syzbot] [iommu?] WARNING in pt_iommu_amdv1_init syzbot
2026-03-24 14:37 ` Pranjal Shrivastava
2026-03-25  5:19   ` Ankit Soni
2026-03-25  9:42     ` Pranjal Shrivastava
2026-03-26 10:31 ` syzbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox