diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-12-02 13:12:01 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-12-02 13:12:01 -0500 |
| commit | bcc2f9b718d0be9cd77551d37c28daf4ebbc570c (patch) | |
| tree | 5debda8b953b288bd547d2be8e36046746762fb0 /drivers | |
| parent | aeac81033bc04c9e7e3ecf5b93f476d26d4cb25b (diff) | |
| parent | 14883a75ec76b44759385fb12629f4a0f1aef4e3 (diff) | |
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
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/xen/grant-table.c | 6 | ||||
| -rw-r--r-- | drivers/xen/swiotlb-xen.c | 5 |
2 files changed, 9 insertions, 2 deletions
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, | |||
| 930 | ret = m2p_add_override(mfn, pages[i], kmap_ops ? | 930 | ret = m2p_add_override(mfn, pages[i], kmap_ops ? |
| 931 | &kmap_ops[i] : NULL); | 931 | &kmap_ops[i] : NULL); |
| 932 | if (ret) | 932 | if (ret) |
| 933 | return ret; | 933 | goto out; |
| 934 | } | 934 | } |
| 935 | 935 | ||
| 936 | out: | ||
| 936 | if (lazy) | 937 | if (lazy) |
| 937 | arch_leave_lazy_mmu_mode(); | 938 | arch_leave_lazy_mmu_mode(); |
| 938 | 939 | ||
| @@ -969,9 +970,10 @@ int gnttab_unmap_refs(struct gnttab_unmap_grant_ref *unmap_ops, | |||
| 969 | ret = m2p_remove_override(pages[i], kmap_ops ? | 970 | ret = m2p_remove_override(pages[i], kmap_ops ? |
| 970 | &kmap_ops[i] : NULL); | 971 | &kmap_ops[i] : NULL); |
| 971 | if (ret) | 972 | if (ret) |
| 972 | return ret; | 973 | goto out; |
| 973 | } | 974 | } |
| 974 | 975 | ||
| 976 | out: | ||
| 975 | if (lazy) | 977 | if (lazy) |
| 976 | arch_leave_lazy_mmu_mode(); | 978 | arch_leave_lazy_mmu_mode(); |
| 977 | 979 | ||
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, | |||
| 555 | sg_dma_len(sgl) = 0; | 555 | sg_dma_len(sgl) = 0; |
| 556 | return 0; | 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 | sg->dma_address = xen_phys_to_bus(map); | 563 | sg->dma_address = xen_phys_to_bus(map); |
| 559 | } else { | 564 | } else { |
| 560 | /* we are not interested in the dma_addr returned by | 565 | /* we are not interested in the dma_addr returned by |
