Hi, This series is to emulate legacy and extended capability list for dom0, including patch #1, #2, #3, #4. hide legacy and extended capability when its initialization fails, including patch #5, #6, #7. remove all related registers and other resources when initializing capability fails, including patch #8, #9, #10, #11.
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 (11): vpci/header: Move emulating cap list logic into new function driver/pci: Get next capability without passing caps vpci/header: Emulate legacy capability list for dom0 vpci/header: Emulate extended capability list for dom0 vpci: Refactor REGISTER_VPCI_INIT vpci: Hide legacy capability when it fails to initialize vpci: Hide extended 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/drivers/pci/pci.c | 3 + xen/drivers/vpci/header.c | 174 +++++++++++++--------- xen/drivers/vpci/msi.c | 28 +++- xen/drivers/vpci/msix.c | 27 +++- xen/drivers/vpci/rebar.c | 35 +++-- xen/drivers/vpci/vpci.c | 290 ++++++++++++++++++++++++++++++++----- xen/include/xen/pci_regs.h | 1 + xen/include/xen/vpci.h | 34 +++-- xen/include/xen/xen.lds.h | 2 +- 10 files changed, 459 insertions(+), 139 deletions(-) -- 2.34.1