[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v1 1/5] vpci: const-ify some pdev instances
Since 622bdd962822 ("vpci/header: handle p2m range sets per BAR"), a non-const pdev is no longer needed for error handling in vpci_process_pending(). Const-ify pdev in vpci_process_pending(), defer_map(), and struct vpci_vcpu. Get rid of const-removal workaround in modify_bars(). Take the opportunity to remove an unused parameter in defer_map(). Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx> --- This is prerequisite for ("vpci: use separate rangeset for BAR unmapping") in order to call defer_map() with a const pdev. --- xen/drivers/vpci/header.c | 16 ++++------------ xen/include/xen/vpci.h | 2 +- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index 1f48f2aac64e..e42c8efa2302 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -175,7 +175,7 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd, bool vpci_process_pending(struct vcpu *v) { - struct pci_dev *pdev = v->vpci.pdev; + const struct pci_dev *pdev = v->vpci.pdev; struct vpci_header *header = NULL; unsigned int i; @@ -283,8 +283,7 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev, return rc; } -static void defer_map(struct domain *d, struct pci_dev *pdev, - uint16_t cmd, bool rom_only) +static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) { struct vcpu *curr = current; @@ -308,7 +307,7 @@ static void defer_map(struct domain *d, struct pci_dev *pdev, static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) { struct vpci_header *header = &pdev->vpci->header; - struct pci_dev *tmp, *dev = NULL; + struct pci_dev *tmp; const struct domain *d; const struct vpci_msix *msix = pdev->vpci->msix; unsigned int i, j; @@ -450,11 +449,6 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) if ( tmp == pdev ) { - /* - * Need to store the device so it's not constified and defer_map - * can modify it in case of error. - */ - dev = tmp; if ( !rom_only ) /* * If memory decoding is toggled avoid checking against the @@ -507,8 +501,6 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) d = dom_xen; } - ASSERT(dev); - if ( system_state < SYS_STATE_active ) { /* @@ -523,7 +515,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) return apply_map(pdev->domain, pdev, cmd); } - defer_map(dev->domain, dev, cmd, rom_only); + defer_map(pdev, cmd, rom_only); return 0; } diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 475981cb8155..27eebdcef170 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -194,7 +194,7 @@ struct vpci { struct vpci_vcpu { /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */ - struct pci_dev *pdev; + const struct pci_dev *pdev; uint16_t cmd; bool rom_only : 1; }; -- 2.49.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |