RE: [PATCH v2] PCI: hv: Replace retarget_msi_interrupt_params with hyperv_pcpu_input_arg

From: Dexuan Cui
Date: Thu Apr 20 2023 - 22:08:16 EST


> From: Dexuan Cui <decui@xxxxxxxxxxxxx>
> Sent: Thursday, April 20, 2023 6:30 PM
> ...
> 4 commits are involved here:
> A (2016): commit 0de8ce3ee8e3 ("PCI: hv: Allocate physically contiguous
> hypercall params buffer")
> B (2017): commit be66b6736591 ("PCI: hv: Use page allocation for hbus
> structure")
> C (2019): commit 877b911a5ba0 ("PCI: hv: Avoid a kmemleak false positive
> caused by the hbus buffer")
> D (2018): commit 68bb7bfb7985 ("X86/Hyper-V: Enable IPI enlightenments")
>
> Patch D introduced the per-CPU hypercall input page
> "hyperv_pcpu_input_arg"
> in 2018. With patch D, we no longer need the per-Hyper-V-PCI-bus hypercall
> input page "hbus->retarget_msi_interrupt_params" that was added in patch
> A,
> and the issue addressed by patch B is no longer an issue, and we can also
> get rid of patch C.
>
> The change here is required for PCI device assignment to work for
> Confidential VMs (CVMs) running without a paravisor, because otherwise we
> would have to call set_memory_decrypted() for
> "hbus->retarget_msi_interrupt_params" before calling the hypercall
> HVCALL_RETARGET_INTERRUPT.
>
> Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx>
> Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
> ---
>
> Changes in v2:
> Fixed the inaccuracy in the commit message (Thanks Michael):
> "Confidential VMs (CVMs)" -> "Confidential VMs (CVMs) running
> without a paravisor".
>
> Added Michael's Reviewed-by.

Hi Bjorn, Lorenzo, since this change is pure Hyper-V stuff, I'd like it to
go through the hyper-v tree if you have no objection.

The hyper-v tree already has a PCI patch from Michael:
https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git/commit/?h=hyperv-next&id=2c6ba4216844ca7918289b49ed5f3f7138ee2402

My patch won't apply cleanly without Michael's patch, because we
both changed "struct hv_pcibus_device".

Thanks,
Dexuan