[Pull Request][lunar/linux-azure] Azure: Add PCI pass-thru support to Hyper-V Confidential VMs

Tim Gardner tim.gardner at canonical.com
Wed May 31 17:39:24 UTC 2023


SRU Justification

[Impact]

Microsoft has requested the inclusion of this patch set:

https://lore.kernel.org/linux-hyperv/1679838727-87310-1-git-send-email-mikelley@microsoft.com/T/

[Regression Potential]

Private memory mappings could be incorrect.

[Test Plan]

Microsoft tested. This patch set is very similar to the set applied to 
k/azure.

[Other Info]

SF: #00355859
All of the commits from Michael Kelly are headed upstream.
All of the non-SAUCE patches from Dexuan Cui are also headed upstream.
---------------------------------------------------------------

The following changes since commit 41a5cc0ba14f18ee2c2b34bd07643bedbb5e3fef:

   UBUNTU: Ubuntu-azure-6.2.0-1004.4 (2023-04-14 16:57:48 +0200)

are available in the Git repository at:

 
git://git.launchpad.net/~timg-tpi/ubuntu/+source/linux-azure/+git/lunar 
lunar-azure-Add-PCI-pass-thru-to-cvm-lp2015369

for you to fetch changes up to 3aec786a79d326dc940e78b76f37ad70fd2f5aaa:

   arm64/hyperv: Use CPUHP_AP_HYPERV_ONLINE state to fix CPU online 
sequencing (2023-05-31 11:32:43 -0600)

----------------------------------------------------------------
Dexuan Cui (5):
       UBUNTU: SAUCE: Drivers: hv: vmbus: Revert Dexuan's changes to 
hv_ringbuffer_init()
       UBUNTU: SAUCE: Drivers: hv: vmbus: Hardcode MMIO resources in 
vmbus_walk_resources() when necessary
       UBUNTU: SAUCE: x86/hyperv: Support hypercalls for TDX guests (part 2)
       Drivers: hv: vmbus: Remove the per-CPU post_msg_page
       PCI: hv: Replace retarget_msi_interrupt_params with 
hyperv_pcpu_input_arg

Jinank Jain (4):
       x86/hyperv: Add support for detecting nested hypervisor
       Drivers: hv: Setup synic registers in case of nested root partition
       x86/hyperv: Add an interface to do nested hypercalls
       Drivers: hv: Enable vmbus driver for nested root partition

Michael Kelley (14):
       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
       x86/hyperv: Block root partition functionality in a Confidential VM
       Drivers: hv: Don't remap addresses that are above shared_gpa_boundary
       PCI: hv: Enable PCI pass-thru devices in Confidential VMs
       x86/hyperv: Fix hyperv_pcpu_input_arg handling when CPUs go 
online/offline
       arm64/hyperv: Use CPUHP_AP_HYPERV_ONLINE state to fix CPU online 
sequencing

  arch/arm64/hyperv/mshyperv.c        |   2 +-
  arch/x86/coco/core.c                |  40 ++++++++++++++++++------
  arch/x86/hyperv/hv_init.c           |  23 ++++----------
  arch/x86/hyperv/ivm.c               | 153 
++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------
  arch/x86/include/asm/coco.h         |   1 -
  arch/x86/include/asm/hyperv-tlfs.h  |  20 +++++++++++-
  arch/x86/include/asm/mem_encrypt.h  |   1 +
  arch/x86/include/asm/mshyperv.h     |  88 
++++++++++++++++++++++++++++++++---------------------
  arch/x86/kernel/cpu/mshyperv.c      | 110 
++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
  arch/x86/mm/mem_encrypt_amd.c       |  10 ++++--
  arch/x86/mm/pat/set_memory.c        |   3 --
  drivers/hv/Kconfig                  |   2 +-
  drivers/hv/channel_mgmt.c           |   2 +-
  drivers/hv/connection.c             | 115 
+++++++++++++++++----------------------------------------------------
  drivers/hv/hv.c                     |  76 
++++++++++++++++++----------------------------
  drivers/hv/hv_common.c              |  81 
++++++++++++++++++++++++++-----------------------
  drivers/hv/hyperv_vmbus.h           |   6 ----
  drivers/hv/ring_buffer.c            |  66 
++++++++++++----------------------------
  drivers/hv/vmbus_drv.c              |  14 +++++++--
  drivers/net/hyperv/hyperv_net.h     |   2 --
  drivers/net/hyperv/netvsc.c         |  48 ++---------------------------
  drivers/pci/controller/pci-hyperv.c | 280 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------
  include/asm-generic/hyperv-tlfs.h   |  23 ++++++++++++++
  include/asm-generic/mshyperv.h      |   5 +--
  include/linux/cpuhotplug.h          |   1 +
  include/linux/swiotlb.h             |   2 --
  init/main.c                         |  19 +++++++-----
  kernel/dma/swiotlb.c                |  47 +---------------------------
  28 files changed, 641 insertions(+), 599 deletions(-)

-- 
-----------
Tim Gardner
Canonical, Inc



More information about the kernel-team mailing list