[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [RFC PATCH 09/10] [RFC only] xen: iommu: remove last pcidevs_lock() calls in iommu
There are number of cases where pcidevs_lock() is used to protect something that is not related to PCI devices per se. Probably pcidev_lock in these places should be replaced with some other lock. This patch is not intended to be merged and is present only to discuss this use of pcidevs_lock() Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx> --- xen/drivers/passthrough/vtd/intremap.c | 2 -- xen/drivers/passthrough/vtd/iommu.c | 5 ----- xen/drivers/passthrough/x86/iommu.c | 5 ----- 3 files changed, 12 deletions(-) diff --git a/xen/drivers/passthrough/vtd/intremap.c b/xen/drivers/passthrough/vtd/intremap.c index 1512e4866b..44e3b72f91 100644 --- a/xen/drivers/passthrough/vtd/intremap.c +++ b/xen/drivers/passthrough/vtd/intremap.c @@ -893,8 +893,6 @@ int pi_update_irte(const struct pi_desc *pi_desc, const struct pirq *pirq, spin_unlock_irq(&desc->lock); - ASSERT(pcidevs_locked()); - return msi_msg_write_remap_rte(msi_desc, &msi_desc->msg); unlock_out: diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c index 87868188b7..9d258d154d 100644 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -127,8 +127,6 @@ static int context_set_domain_id(struct context_entry *context, { unsigned int i; - ASSERT(pcidevs_locked()); - if ( domid_mapping(iommu) ) { unsigned int nr_dom = cap_ndoms(iommu->cap); @@ -1882,7 +1880,6 @@ int domain_context_unmap_one( int iommu_domid, rc, ret; bool_t flush_dev_iotlb; - ASSERT(pcidevs_locked()); spin_lock(&iommu->lock); maddr = bus_to_context_maddr(iommu, bus); @@ -2601,7 +2598,6 @@ static void __hwdom_init setup_hwdom_rmrr(struct domain *d) u16 bdf; int ret, i; - pcidevs_lock(); for_each_rmrr_device ( rmrr, bdf, i ) { /* @@ -2616,7 +2612,6 @@ static void __hwdom_init setup_hwdom_rmrr(struct domain *d) dprintk(XENLOG_ERR VTDPREFIX, "IOMMU: mapping reserved region failed\n"); } - pcidevs_unlock(); } static struct iommu_state { diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c index f671b0f2bb..4e94ad15df 100644 --- a/xen/drivers/passthrough/x86/iommu.c +++ b/xen/drivers/passthrough/x86/iommu.c @@ -207,7 +207,6 @@ int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma, struct identity_map *map; struct domain_iommu *hd = dom_iommu(d); - ASSERT(pcidevs_locked()); ASSERT(base < end); /* @@ -479,8 +478,6 @@ domid_t iommu_alloc_domid(unsigned long *map) static unsigned int start; unsigned int idx = find_next_zero_bit(map, UINT16_MAX - DOMID_MASK, start); - ASSERT(pcidevs_locked()); - if ( idx >= UINT16_MAX - DOMID_MASK ) idx = find_first_zero_bit(map, UINT16_MAX - DOMID_MASK); if ( idx >= UINT16_MAX - DOMID_MASK ) @@ -495,8 +492,6 @@ domid_t iommu_alloc_domid(unsigned long *map) void iommu_free_domid(domid_t domid, unsigned long *map) { - ASSERT(pcidevs_locked()); - if ( domid == DOMID_INVALID ) return; -- 2.36.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |