Re: [PATCH v6 15/16] x86/hyperv: implement an MSI domain for root partition

From: Wei Liu
Date: Thu Feb 04 2021 - 13:47:30 EST


On Thu, Feb 04, 2021 at 06:40:55PM +0000, Michael Kelley wrote:
> From: Wei Liu <wei.liu@xxxxxxxxxx> Sent: Thursday, February 4, 2021 9:57 AM
[...]
> > I've got the following diff to fix both issues. If you're happy with the
> > changes, can you give your Reviewed-by? That saves a round of posting.
> >
> > diff --git a/arch/x86/hyperv/irqdomain.c b/arch/x86/hyperv/irqdomain.c
> > index 0cabc9aece38..fa71db798465 100644
> > --- a/arch/x86/hyperv/irqdomain.c
> > +++ b/arch/x86/hyperv/irqdomain.c
> > @@ -1,7 +1,7 @@
> > // SPDX-License-Identifier: GPL-2.0
> >
> > /*
> > - * for Linux to run as the root partition on Microsoft Hypervisor.
> > + * Irqdomain for Linux to run as the root partition on Microsoft Hypervisor.
> > *
> > * Authors:
> > * Sunil Muthuswamy <sunilmut@xxxxxxxxxxxxx>
> > @@ -20,7 +20,7 @@ static int hv_map_interrupt(union hv_device_id device_id, bool level,
> > struct hv_device_interrupt_descriptor *intr_desc;
> > unsigned long flags;
> > u64 status;
> > - cpumask_t mask = CPU_MASK_NONE;
> > + const cpumask_t *mask;
> > int nr_bank, var_size;
> >
> > local_irq_save(flags);
> > @@ -41,10 +41,10 @@ static int hv_map_interrupt(union hv_device_id device_id, bool
> > level,
> > else
> > intr_desc->trigger_mode = HV_INTERRUPT_TRIGGER_MODE_EDGE;
> >
> > - cpumask_set_cpu(cpu, &mask);
> > + mask = cpumask_of(cpu);
> > intr_desc->target.vp_set.valid_bank_mask = 0;
> > intr_desc->target.vp_set.format = HV_GENERIC_SET_SPARSE_4K;
> > - nr_bank = cpumask_to_vpset(&(intr_desc->target.vp_set), &mask);
> > + nr_bank = cpumask_to_vpset(&(intr_desc->target.vp_set), mask);
>
> Can you just do the following and get rid of the 'mask' local entirely?
>
> nr_bank = cpumask_to_vpset(&(intr_desc->target.vp_set), cpumask_of(cpu));

Sure. That can be done.

>
> Either way,
>
> Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>

Thank you.

Wei.