Hi, This series is to emulate legacy and extended capability list for host, including patch #1, #2, #3, hide capability when its initialization fails, including patch #4, remove all related registers and other resources when failure, including patch #5, #6, #7, #8.
Best regards, Jiqian Chen. --- cc: Andrew Cooper <andrew.coop...@citrix.com> cc: Anthony PERARD <anthony.per...@vates.tech> cc: Michal Orzel <michal.or...@amd.com> cc: Jan Beulich <jbeul...@suse.com> cc: Julien Grall <jul...@xen.org> cc: "Roger Pau Monné" <roger....@citrix.com> cc: Stefano Stabellini <sstabell...@kernel.org> --- Jiqian Chen (8): driver/pci: Get next capability without passing caps vpci/header: Emulate legacy capability list for host vpci/header: Emulate extended capability list for host vpci: Hide capability when it fails to initialize vpci: Refactor vpci_remove_register to remove matched registers vpci/rebar: Remove registers when init_rebar() fails vpci/msi: Free MSI resources when init_msi() fails vpci/msix: Add function to clean MSIX resources tools/tests/vpci/main.c | 4 +- xen/arch/x86/hvm/intercept.c | 44 +++++++ xen/arch/x86/include/asm/hvm/io.h | 3 + xen/drivers/pci/pci.c | 6 +- xen/drivers/vpci/header.c | 180 ++++++++++++++++----------- xen/drivers/vpci/msi.c | 49 ++++++-- xen/drivers/vpci/msix.c | 67 +++++++++- xen/drivers/vpci/rebar.c | 27 ++-- xen/drivers/vpci/vpci.c | 198 ++++++++++++++++++++++++------ xen/include/xen/pci.h | 2 +- xen/include/xen/pci_regs.h | 1 + xen/include/xen/vpci.h | 30 +++-- xen/include/xen/xen.lds.h | 2 +- 13 files changed, 461 insertions(+), 152 deletions(-) -- 2.34.1