Subject: Re: [PATCH v5 07/36] KVM: arm64: gic: Introduce interrupt type helpers

From: Marc Zyngier <[email-masked]>
Date: Tue, 03 Mar 2026 15:04:14 +0000

On Thu, 26 Feb 2026 15:57:14 +0000,
Sascha Bischoff <[email-masked]> wrote:
> 
> GICv5 has moved from using interrupt ranges for different interrupt
> types to using some of the upper bits of the interrupt ID to denote
> the interrupt type. This is not compatible with older GICs (which rely
> on ranges of interrupts to determine the type), and hence a set of
> helpers is introduced. These helpers take a struct kvm*, and use the
> vgic model to determine how to interpret the interrupt ID.
> 
> Helpers are introduced for PPIs, SPIs, and LPIs. Additionally, a
> helper is introduced to determine if an interrupt is private - SGIs
> and PPIs for older GICs, and PPIs only for GICv5.
> 
> The helpers are plumbed into the core vgic code, as well as the Arch
> Timer and PMU code.
> 
> There should be no functional changes as part of this change.
> 
> Signed-off-by: Sascha Bischoff <[email-masked]>
> Reviewed-by: Joey Gouly <[email-masked]>
> Reviewed-by: Jonathan Cameron <[email-masked]>
> ---
>  arch/arm64/kvm/arch_timer.c           |  2 +-
>  arch/arm64/kvm/pmu-emul.c             |  7 +-
>  arch/arm64/kvm/vgic/vgic-kvm-device.c |  2 +-
>  arch/arm64/kvm/vgic/vgic.c            | 14 ++--
>  include/kvm/arm_vgic.h                | 92 +++++++++++++++++++++++++--
>  5 files changed, 100 insertions(+), 17 deletions(-)
>

[...]

> diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h
> index f2eafc65bbf4c..f12b47e589abc 100644
> --- a/include/kvm/arm_vgic.h
> +++ b/include/kvm/arm_vgic.h

[...]

> +#define vgic_is_v5(k) ((k)->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V5)

vgic_is_v3() is defined in arch/arm64/kvm/vgic/vgic.h, as a function
rather than a macro. These things should all live together, and
preferably have similar implementation styles.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.