diff options
| -rw-r--r-- | arch/arm/xen/p2m.c | 5 | ||||
| -rw-r--r-- | drivers/xen/grant-table.c | 6 | ||||
| -rw-r--r-- | drivers/xen/swiotlb-xen.c | 5 | 
3 files changed, 12 insertions, 4 deletions
| diff --git a/arch/arm/xen/p2m.c b/arch/arm/xen/p2m.c index 23732cdff551..b31ee1b275b0 100644 --- a/arch/arm/xen/p2m.c +++ b/arch/arm/xen/p2m.c @@ -25,8 +25,9 @@ struct xen_p2m_entry {  	struct rb_node rbnode_phys;  }; -rwlock_t p2m_lock; +static rwlock_t p2m_lock;  struct rb_root phys_to_mach = RB_ROOT; +EXPORT_SYMBOL_GPL(phys_to_mach);  static struct rb_root mach_to_phys = RB_ROOT;  static int xen_add_phys_to_mach_entry(struct xen_p2m_entry *new) @@ -200,7 +201,7 @@ bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn)  }  EXPORT_SYMBOL_GPL(__set_phys_to_machine); -int p2m_init(void) +static int p2m_init(void)  {  	rwlock_init(&p2m_lock);  	return 0; diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c index 62ccf5424ba8..028387192b60 100644 --- a/drivers/xen/grant-table.c +++ b/drivers/xen/grant-table.c @@ -930,9 +930,10 @@ int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops,  		ret = m2p_add_override(mfn, pages[i], kmap_ops ?  				       &kmap_ops[i] : NULL);  		if (ret) -			return ret; +			goto out;  	} + out:  	if (lazy)  		arch_leave_lazy_mmu_mode(); @@ -969,9 +970,10 @@ int gnttab_unmap_refs(struct gnttab_unmap_grant_ref *unmap_ops,  		ret = m2p_remove_override(pages[i], kmap_ops ?  				       &kmap_ops[i] : NULL);  		if (ret) -			return ret; +			goto out;  	} + out:  	if (lazy)  		arch_leave_lazy_mmu_mode(); diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index a224bc74b6b9..1eac0731c349 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -555,6 +555,11 @@ xen_swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl,  				sg_dma_len(sgl) = 0;  				return 0;  			} +			xen_dma_map_page(hwdev, pfn_to_page(map >> PAGE_SHIFT), +						map & ~PAGE_MASK, +						sg->length, +						dir, +						attrs);  			sg->dma_address = xen_phys_to_bus(map);  		} else {  			/* we are not interested in the dma_addr returned by | 
