Hi,
I'm running Xen in QEMU with vgic3 and started hitting:
(XEN) Xen BUG at drivers/passthrough/arm/iommu_helpers.c:49
BUG_ON(!is_domain_direct_mapped(d));
I'm using dmo0less to create a split hardware and control domains. That
means hwdom is not direct mapped, but is_iommu_enabled() is true. It
looks to be caused by the new call to iommu_map() in:
commit f9f6b22abf1d8d88c97fbc9925b274c0bb4ac881
Author: Rahul Singh <rahul.si...@arm.com>
Date: Wed Jul 2 07:10:03 2025 +0000
xen/arm: Map ITS doorbell register to IOMMU page tables
Thoughts on how to address this?
Thanks,
Jason
(XEN) Loading d1 initrd from 0000000045800000 to
0x0000000048200000-0x000000004bdcd615
(XEN) Loading d1 DTB to 0x0000000048000000-0x00000000480005c4
(XEN) Xen BUG at drivers/passthrough/arm/iommu_helpers.c:49
(XEN) ----[ Xen-4.21-unstable arm64 debug=y Tainted: I ]----
(XEN) CPU: 0
(XEN) PC: 00000a000024c758 arm_iommu_map_page+0x80/0x90
(XEN) LR: 00000a000024c750
(XEN) SP: 00000a000032fb70
(XEN) CPSR: 0000000080000249 MODE:64-bit EL2h (Hypervisor, handler)
...
(XEN) Xen call trace:
(XEN) [<00000a000024c758>] arm_iommu_map_page+0x80/0x90 (PC)
(XEN) [<00000a000024c750>] arm_iommu_map_page+0x78/0x90 (LR)
(XEN) [<00000a0000250884>] iommu_map+0xcc/0x29c
(XEN) [<00000a0000288024>] vgic_v3_its_init_domain+0x18c/0x1e8
(XEN) [<00000a0000285228>] vgic-v3.c#vgic_v3_domain_init+0x168/0x21c
(XEN) [<00000a0000281dcc>] domain_vgic_init+0x14c/0x210
(XEN) [<00000a00002705a4>] arch_domain_create+0x150/0x1f0
(XEN) [<00000a00002055e8>] domain_create+0x47c/0x6c0
(XEN) [<00000a00002cf090>] create_domUs+0x7f8/0x8cc
(XEN) [<00000a00002eb588>] start_xen+0x8f4/0x998
(XEN) [<00000a000020018c>] head.o#primary_switched+0x4/0x10
(XEN)
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Xen BUG at drivers/passthrough/arm/iommu_helpers.c:49
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...