Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'stable/for-linus-3.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull Xen bug-fixes from Konrad Rzeszutek Wilk:
"Fixes to patches that went in this merge window along with a latent
bug:
- Fix lazy flushing in case m2p override fails.
- Fix module compile issues with ARM/Xen
- Add missing call to DMA map page for Xen SWIOTLB for ARM"

* tag 'stable/for-linus-3.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
xen/gnttab: leave lazy MMU mode in the case of a m2p override failure
xen/arm: p2m_init and p2m_lock should be static
arm/xen: Export phys_to_mach to fix Xen module link errors
swiotlb-xen: add missing xen_dma_map_page call

+12 -4
+3 -2
arch/arm/xen/p2m.c
··· 25 25 struct rb_node rbnode_phys; 26 26 }; 27 27 28 - rwlock_t p2m_lock; 28 + static rwlock_t p2m_lock; 29 29 struct rb_root phys_to_mach = RB_ROOT; 30 + EXPORT_SYMBOL_GPL(phys_to_mach); 30 31 static struct rb_root mach_to_phys = RB_ROOT; 31 32 32 33 static int xen_add_phys_to_mach_entry(struct xen_p2m_entry *new) ··· 201 200 } 202 201 EXPORT_SYMBOL_GPL(__set_phys_to_machine); 203 202 204 - int p2m_init(void) 203 + static int p2m_init(void) 205 204 { 206 205 rwlock_init(&p2m_lock); 207 206 return 0;
+4 -2
drivers/xen/grant-table.c
··· 930 930 ret = m2p_add_override(mfn, pages[i], kmap_ops ? 931 931 &kmap_ops[i] : NULL); 932 932 if (ret) 933 - return ret; 933 + goto out; 934 934 } 935 935 936 + out: 936 937 if (lazy) 937 938 arch_leave_lazy_mmu_mode(); 938 939 ··· 970 969 ret = m2p_remove_override(pages[i], kmap_ops ? 971 970 &kmap_ops[i] : NULL); 972 971 if (ret) 973 - return ret; 972 + goto out; 974 973 } 975 974 975 + out: 976 976 if (lazy) 977 977 arch_leave_lazy_mmu_mode(); 978 978
+5
drivers/xen/swiotlb-xen.c
··· 555 555 sg_dma_len(sgl) = 0; 556 556 return 0; 557 557 } 558 + xen_dma_map_page(hwdev, pfn_to_page(map >> PAGE_SHIFT), 559 + map & ~PAGE_MASK, 560 + sg->length, 561 + dir, 562 + attrs); 558 563 sg->dma_address = xen_phys_to_bus(map); 559 564 } else { 560 565 /* we are not interested in the dma_addr returned by