ptirq_remapping_info records which pGSI is mapped to the vGSI in a VM.
As we need to knonw whether a pGSI has been assigned to a VM and
whether a vGSI in a VM has been used, there should be two hash
tables to link and iterate ptirq_remapping_info:
- One is used to lookup from pGSI, linking phys_link.
- The other is used to lookup from vGSI in a VM, linking virt_link
When assigning a pGSI to a Post-launched VM, if the pGSI has been
assigned to ServiceVM, we should remove that mapping first to reset
ioapic pin state and rte, and build new mapping for the Post-launched
VM.
Change Log:
v2:
Add ptirq_reassign_intx_remapping to do intx reassignment from ServiceVM
to Postlaunched VM, instead of patching the logic in add_intx_remapping.
Qiang Zhang (1):
ptirq: Fix ptirq hash tables and uos intx assignment
hypervisor/arch/x86/guest/assign.c | 41 ++++++++++----
hypervisor/common/hypercall.c | 2 +-
hypervisor/common/ptdev.c | 53 ++++++++++++-------
.../include/arch/x86/asm/guest/assign.h | 21 ++++++++
4 files changed, 85 insertions(+), 32 deletions(-)
--
2.30.2