[PATCH v4 32/36] irqchip/gic-v5: Check if impl is virt capable
Sascha Bischoff
Sascha.Bischoff at arm.com
Fri Jan 30 05:58:46 PST 2026
On Fri, 2026-01-30 at 11:14 +0000, Marc Zyngier wrote:
> On Wed, 28 Jan 2026 18:07:33 +0000,
> Sascha Bischoff <Sascha.Bischoff at arm.com> wrote:
> >
> > Now that there is support for creating a GICv5-based guest with
> > KVM,
> > check that the hardware itself supports virtualisation, skipping
> > the
> > setting of struct gic_kvm_info if not.
> >
> > Note: If native GICv5 virt is not supported, then nor is
> > FEAT_GCIE_LEGACY, so we are able to skip altogether.
> >
> > Signed-off-by: Sascha Bischoff <sascha.bischoff at arm.com>
> > Reviewed-by: Lorenzo Pieralisi <lpieralisi at kernel.org>
> > Reviewed-by: Jonathan Cameron <jonathan.cameron at huawei.com>
> > ---
> > drivers/irqchip/irq-gic-v5-irs.c | 4 ++++
> > drivers/irqchip/irq-gic-v5.c | 10 ++++++++++
> > include/linux/irqchip/arm-gic-v5.h | 4 ++++
> > 3 files changed, 18 insertions(+)
> >
> > diff --git a/drivers/irqchip/irq-gic-v5-irs.c
> > b/drivers/irqchip/irq-gic-v5-irs.c
> > index ce2732d649a3..eebf9f219ac8 100644
> > --- a/drivers/irqchip/irq-gic-v5-irs.c
> > +++ b/drivers/irqchip/irq-gic-v5-irs.c
> > @@ -744,6 +744,10 @@ static int __init gicv5_irs_init(struct
> > device_node *node)
> > */
> > if (list_empty(&irs_nodes)) {
> >
> > + idr = irs_readl_relaxed(irs_data, GICV5_IRS_IDR0);
> > + gicv5_global_data.virt_capable =
> > + !!FIELD_GET(GICV5_IRS_IDR0_VIRT, idr);
> > +
>
> I'll tidy-up this while cherry-picking it (spurious newline before
> the
> hunk, horrible split assignment...).
Apologies! Thanks for doing that!
Sascha
>
> Thanks,
>
> M.
>
More information about the linux-arm-kernel
mailing list