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

From: Wei Liu
Date: Thu Nov 12 2020 - 08:50:57 EST


On Thu, Nov 05, 2020 at 04:58:12PM +0000, Wei Liu wrote:
> When Linux runs as the root partition on Microsoft Hypervisor, its
> interrupts are remapped. Linux will need to explicitly map and unmap
> interrupts for hardware.
>
> Implement an MSI domain to issue the correct hypercalls. And initialize
> this irqdomain as the default MSI irq domain.
>
> Signed-off-by: Sunil Muthuswamy <sunilmut@xxxxxxxxxxxxx>
> Co-Developed-by: Sunil Muthuswamy <sunilmut@xxxxxxxxxxxxx>
> Signed-off-by: Wei Liu <wei.liu@xxxxxxxxxx>
> ---
> v2:
> This patch is simplified due to upstream changes.
> ---
> arch/x86/hyperv/Makefile | 2 +-
> arch/x86/hyperv/hv_init.c | 10 +-
> arch/x86/hyperv/irqdomain.c | 330 ++++++++++++++++++++++++++++++++++++
> 3 files changed, 340 insertions(+), 2 deletions(-)
> create mode 100644 arch/x86/hyperv/irqdomain.c
>
> diff --git a/arch/x86/hyperv/Makefile b/arch/x86/hyperv/Makefile
> index 565358020921..2ebcf3969121 100644
> --- a/arch/x86/hyperv/Makefile
> +++ b/arch/x86/hyperv/Makefile
> @@ -1,6 +1,6 @@
> # SPDX-License-Identifier: GPL-2.0-only
> obj-y := hv_init.o mmu.o nested.o
> -obj-$(CONFIG_X86_64) += hv_apic.o hv_proc.o
> +obj-$(CONFIG_X86_64) += hv_apic.o hv_proc.o irqdomain.o

I need to move irqdomain.o to obj-y because 32bit build also needs it in
hv_init.o.

After this change, 32bit build of the kernel builds and works as expected.

Wei.