[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v4 03/11] vpci: make vpci registers removal a dedicated function
From: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> This is in preparation for dynamic assignment of the vpci register handlers depending on the domain: hwdom or guest. Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> --- Since v3: - remove all R-b's due to changes - s/vpci_remove_device_registers/vpci_remove_device_handlers - minor comment cleanup Since v1: - constify struct pci_dev where possible --- xen/drivers/vpci/vpci.c | 6 +++++- xen/include/xen/vpci.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c index 4e24956419aa..d7f033a0811f 100644 --- a/xen/drivers/vpci/vpci.c +++ b/xen/drivers/vpci/vpci.c @@ -35,7 +35,7 @@ extern vpci_register_init_t *const __start_vpci_array[]; extern vpci_register_init_t *const __end_vpci_array[]; #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array) -void vpci_remove_device(struct pci_dev *pdev) +void vpci_remove_device_handlers(const struct pci_dev *pdev) { if ( !has_vpci(pdev->domain) ) return; @@ -51,8 +51,12 @@ void vpci_remove_device(struct pci_dev *pdev) xfree(r); } spin_unlock(&pdev->vpci->lock); +} +void vpci_remove_device(struct pci_dev *pdev) +{ vpci_cancel_pending(pdev); + vpci_remove_device_handlers(pdev); xfree(pdev->vpci->msix); xfree(pdev->vpci->msi); xfree(pdev->vpci); diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 609d6383b252..1883b9d08a70 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -30,6 +30,8 @@ int __must_check vpci_add_handlers(struct pci_dev *dev); /* Remove all handlers and free vpci related structures. */ void vpci_remove_device(struct pci_dev *pdev); +/* Remove all handlers for the device. */ +void vpci_remove_device_handlers(const struct pci_dev *pdev); /* Add/remove a register handler. */ int __must_check vpci_add_register(struct vpci *vpci, -- 2.25.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |