Fixes for running as nested root partition on the Microsoft Hypervisor. Address issues with vmbus. The first patch prevents the Hyper-V PCI driver being registered on baremetal, since there's no vmbus. The second patch changes vmbus to make hypercalls to the L0 hypervisor instead of the L1. This is needed because L0 hypervisor, not the L1, is the one hosting the Windows root partition with the VMM that provides vmbus. The 3rd patch fixes a bug where cpu_online_mask is used unnecessarily in an interrupt chip callback. The 4th patch fixes up error return values in hv_map/unmap_interrupt() and their callers, and cleans up style issues. The 5th and 6th patches fix interrupt unmasking on nested. In this scenario, the L1 (nested) hypervisor does the interrupt mapping to root partition cores. The vectors just need to be mapped with MAP_DEVICE_INTERRUPT instead of affinitized with RETARGET_INTERRUPT. Changes in v2: - Reword commit messages for clarity (Michael Kelley, Bjorn Helgaas) - Open-code nested hypercalls to reduce unnecessary code (Michael Kelley) - Add patch (#3) to fix cpu_online_mask issue (Thomas Gleixner) - Add patch (#4) to fix error return values (Michael Kelley) - Remove several redundant error messages and checks (Michael Kelley) Mukesh Rathor (1): PCI: hv: Don't load the driver for baremetal root partition Nuno Das Neves (3): Drivers: hv: Use nested hypercall for post message and signal event x86/hyperv: Fix usage of cpu_online_mask to get valid cpu x86/hyperv: Clean up hv_map/unmap_interrupt() return values Stanislav Kinsburskii (2): x86: hyperv: Expose hv_map_msi_interrupt function PCI: hv: Use the correct hypercall for unmasking interrupts on nested arch/x86/hyperv/irqdomain.c | 66 +++++++++++++++++------------ arch/x86/include/asm/mshyperv.h | 22 +--------- drivers/hv/connection.c | 7 ++- drivers/hv/hv.c | 6 ++- drivers/iommu/hyperv-iommu.c | 33 ++++++--------- drivers/pci/controller/pci-hyperv.c | 21 ++++++++- 6 files changed, 80 insertions(+), 75 deletions(-) -- 2.34.1