[GIT PULL] Hyper-V commits for 6.4

From: Wei Liu
Date: Mon Apr 24 2023 - 21:14:58 EST


Hi Linus,

The following changes since commit 6a8f57ae2eb07ab39a6f0ccad60c760743051026:

Linux 6.3-rc7 (2023-04-16 15:23:53 -0700)

are available in the Git repository at:

ssh://git@xxxxxxxxxxxxxxxxxxx/pub/scm/linux/kernel/git/hyperv/linux.git tags/hyperv-next-signed-20230424

for you to fetch changes up to a494aef23dfc732945cb42e22246a5c31174e4a5:

PCI: hv: Replace retarget_msi_interrupt_params with hyperv_pcpu_input_arg (2023-04-21 21:25:23 +0000)

Note that I needed to do a merge with tip/x86/sev because some of
Michael's patches were merged into that branch first. I've written down
the rationale in the merge commit.

This PR can conflict with sysctl-next, because both branches modified
VMBus code. A correct resolution can be found here:

https://lore.kernel.org/linux-next/20230424154742.131094-1-broonie@xxxxxxxxxx/

Although the resolution is empty, it is correct, because Long rebased
his patch multiple times on both linux-next and linux-hyperv, the patch
ended up containing the same changes as Luis' patch.

----------------------------------------------------------------
hyperv-next for v6.4
- PCI passthrough for Hyper-V confidential VMs (Michael Kelley)
- Hyper-V VTL mode support (Saurabh Sengar)
- Move panic report initialization code earlier (Long Li)
- Various improvements and bug fixes (Dexuan Cui and Michael Kelley)
----------------------------------------------------------------
Borislav Petkov (AMD) (2):
crypto: ccp: Get rid of __sev_platform_init_locked()'s local function pointer
x86/coco: Export cc_vendor

Dexuan Cui (3):
clocksource: hyper-v: make sure Invariant-TSC is used if it is available
Drivers: hv: vmbus: Remove the per-CPU post_msg_page
PCI: hv: Replace retarget_msi_interrupt_params with hyperv_pcpu_input_arg

Dionna Glaze (2):
virt/coco/sev-guest: Double-buffer messages
x86/sev: Change snp_guest_issue_request()'s fw_err argument

Long Li (1):
Drivers: hv: move panic report code from vmbus to hv early init code

Michael Kelley (14):
x86/ioremap: Add hypervisor callback for private MMIO mapping in coco VM
x86/hyperv: Reorder code to facilitate future work
Drivers: hv: Explicitly request decrypted in vmap_pfn() calls
x86/mm: Handle decryption/re-encryption of bss_decrypted consistently
init: Call mem_encrypt_init() after Hyper-V hypercall init is done
x86/hyperv: Change vTOM handling to use standard coco mechanisms
swiotlb: Remove bounce buffer remapping for Hyper-V
Drivers: hv: vmbus: Remove second mapping of VMBus monitor pages
Drivers: hv: vmbus: Remove second way of mapping ring buffers
hv_netvsc: Remove second mapping of send and recv buffers
Drivers: hv: Don't remap addresses that are above shared_gpa_boundary
PCI: hv: Enable PCI pass-thru devices in Confidential VMs
x86/hyperv: Add callback filter to cpumask_to_vpset()
x86/hyperv: Exclude lazy TLB mode CPUs from enlightened TLB flushes

Peter Gonda (1):
crypto: ccp - Name -1 return value as SEV_RET_NO_FW_CALL

Saurabh Sengar (10):
drivers/clocksource/hyper-v: non ACPI support in hyperv clock
ACPI: bus: Add stub acpi_sleep_state_supported() in non-ACPI cases
Drivers: hv: vmbus: Convert acpi_device to more generic platform_device
dt-bindings: bus: Add Hyper-V VMBus
Driver: VMBus: Add Devicetree support
x86/init: Make get/set_rtc_noop() public
x86/hyperv: Add VTL specific structs and hypercalls
x86/hyperv: Make hv_get_nmi_reason public
Drivers: hv: Kconfig: Add HYPERV_VTL_MODE
x86/hyperv: VTL support for Hyper-V

Thomas Gleixner (1):
Merge branch 'x86/cc' into x86/sev

Wei Liu (1):
Merge remote-tracking branch 'tip/x86/sev' into hyperv-next

.../devicetree/bindings/bus/microsoft,vmbus.yaml | 54 ++++
Documentation/virt/coco/sev-guest.rst | 20 +-
MAINTAINERS | 1 +
arch/x86/coco/core.c | 53 ++--
arch/x86/hyperv/Makefile | 1 +
arch/x86/hyperv/hv_apic.c | 12 +-
arch/x86/hyperv/hv_init.c | 18 +-
arch/x86/hyperv/hv_vtl.c | 227 +++++++++++++++
arch/x86/hyperv/ivm.c | 148 ++++++----
arch/x86/hyperv/mmu.c | 11 +-
arch/x86/include/asm/coco.h | 24 +-
arch/x86/include/asm/hyperv-tlfs.h | 78 +++++
arch/x86/include/asm/mem_encrypt.h | 1 +
arch/x86/include/asm/mshyperv.h | 31 +-
arch/x86/include/asm/sev-common.h | 4 -
arch/x86/include/asm/sev.h | 10 +-
arch/x86/include/asm/x86_init.h | 6 +
arch/x86/kernel/apic/io_apic.c | 10 +-
arch/x86/kernel/cpu/mshyperv.c | 28 +-
arch/x86/kernel/sev.c | 15 +-
arch/x86/kernel/x86_init.c | 6 +-
arch/x86/mm/ioremap.c | 5 +
arch/x86/mm/mem_encrypt_amd.c | 10 +-
arch/x86/mm/pat/set_memory.c | 3 -
drivers/clocksource/hyperv_timer.c | 21 +-
drivers/crypto/ccp/sev-dev.c | 22 +-
drivers/hv/Kconfig | 30 +-
drivers/hv/channel_mgmt.c | 2 +-
drivers/hv/connection.c | 113 ++------
drivers/hv/hv.c | 79 ++---
drivers/hv/hv_common.c | 242 +++++++++++++++-
drivers/hv/hyperv_vmbus.h | 6 -
drivers/hv/ring_buffer.c | 62 ++--
drivers/hv/vmbus_drv.c | 322 ++++++---------------
drivers/net/hyperv/hyperv_net.h | 2 -
drivers/net/hyperv/netvsc.c | 48 +--
drivers/pci/controller/pci-hyperv.c | 280 +++++++++++-------
drivers/virt/coco/sev-guest/sev-guest.c | 99 ++++---
include/asm-generic/hyperv-tlfs.h | 26 ++
include/asm-generic/mshyperv.h | 26 +-
include/linux/acpi.h | 5 +
include/linux/swiotlb.h | 2 -
include/uapi/linux/psp-sev.h | 7 +
include/uapi/linux/sev-guest.h | 18 +-
init/main.c | 19 +-
kernel/dma/swiotlb.c | 45 +--
46 files changed, 1388 insertions(+), 864 deletions(-)
create mode 100644 Documentation/devicetree/bindings/bus/microsoft,vmbus.yaml
create mode 100644 arch/x86/hyperv/hv_vtl.c