linux/arch/arm64/include/uapi/asm
Sascha Bischoff d51c978b7d KVM: arm64: gic-v5: Communicate userspace-driveable PPIs via a UAPI
GICv5 systems will likely not support the full set of PPIs. The
presence of any virtual PPI is tied to the presence of the physical
PPI. Therefore, the available PPIs will be limited by the physical
host. Userspace cannot drive any PPIs that are not implemented.

Moreover, it is not desirable to expose all PPIs to the guest in the
first place, even if they are supported in hardware. Some devices,
such as the arch timer, are implemented in KVM, and hence those PPIs
shouldn't be driven by userspace, either.

Provided a new UAPI:
  KVM_DEV_ARM_VGIC_GRP_CTRL => KVM_DEV_ARM_VGIC_USERPSPACE_PPIs

This allows userspace to query which PPIs it is able to drive via
KVM_IRQ_LINE.

Additionally, introduce a check in kvm_vm_ioctl_irq_line() to reject
any PPIs not in the userspace mask.

Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Link: https://patch.msgid.link/20260319154937.3619520-40-sascha.bischoff@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
2026-03-19 18:21:29 +00:00
..
auxvec.h arm64: signal: Report signal frame size to userspace via auxv 2018-06-01 15:53:10 +01:00
bitsperlong.h arm64: uapi: Provide correct __BITS_PER_LONG for the compat vDSO 2025-09-03 12:07:23 +01:00
bpf_perf_event.h treewide: add "WITH Linux-syscall-note" to SPDX tag of uapi headers 2019-07-25 11:05:10 +02:00
byteorder.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
fcntl.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
hwcap.h arm64: Add support for FEAT_{LS64, LS64_V} 2026-01-22 13:24:49 +00:00
Kbuild arm64: generate 64-bit syscall.tbl 2024-07-10 14:23:38 +02:00
kvm.h KVM: arm64: gic-v5: Communicate userspace-driveable PPIs via a UAPI 2026-03-19 18:21:29 +00:00
mman.h arm64: implement PKEYS support 2024-09-04 12:54:04 +01:00
param.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
perf_regs.h arm64: asm/perf_regs.h: Avoid C++-style comment in UAPI header 2022-09-22 22:15:33 +01:00
posix_types.h License cleanup: add SPDX license identifier to uapi header files with no license 2017-11-02 11:19:54 +01:00
ptrace.h arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers 2025-11-11 19:35:58 +00:00
setup.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
sigcontext.h arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers 2025-11-11 19:35:58 +00:00
signal.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
statfs.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
sve_context.h arm64/sve: Document that __SVE_VQ_MAX is much larger than needed 2024-02-22 19:32:47 +00:00
ucontext.h License cleanup: add SPDX license identifier to uapi header files with a license 2017-11-02 11:20:11 +01:00
unistd.h arm64: generate 64-bit syscall.tbl 2024-07-10 14:23:38 +02:00