diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-25 18:57:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-25 18:57:48 -0400 |
commit | cff7b8ba60e332377568c3d55c8036e9b1de32e6 (patch) | |
tree | e2aa7d2e91548229464389a7848a218666deea6d | |
parent | 4864ccbb5a6f99e4c44dc816304007547a268b9f (diff) | |
parent | 4e85fb831aa210fd1c5e2cb7909ac203c1f5b67f (diff) |
Merge branch 'fixes_for_linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping
Pull CMA and DMA-mapping fixes from Marek Szyprowski:
"This consists mainly of a set of one-liner fixes and cleanups for a
few minor issues identified in both Contiguous Memory Allocator code
and ARM DMA-mapping subsystem."
* 'fixes_for_linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
ARM: mm: Remove unused arm_vmregion priv field
ARM: dma-mapping: fix build warning in __dma_alloc()
ARM: dma-mapping: support debug_dma_mapping_error
mm: cma: alloc_contig_range: return early for err path
drivers: cma: Fix wrong CMA selected region size default value
drivers: dma-coherent: Fix typo in dma_mmap_from_coherent documentation
drivers: dma-contiguous: Don't redefine SZ_1M
-rw-r--r-- | arch/arm/include/asm/dma-mapping.h | 1 | ||||
-rw-r--r-- | arch/arm/mm/dma-mapping.c | 2 | ||||
-rw-r--r-- | arch/arm/mm/vmregion.h | 1 | ||||
-rw-r--r-- | drivers/base/Kconfig | 2 | ||||
-rw-r--r-- | drivers/base/dma-coherent.c | 5 | ||||
-rw-r--r-- | drivers/base/dma-contiguous.c | 5 | ||||
-rw-r--r-- | mm/page_alloc.c | 2 |
7 files changed, 7 insertions, 11 deletions
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h index 23004847bb05..78d8e9b5544f 100644 --- a/arch/arm/include/asm/dma-mapping.h +++ b/arch/arm/include/asm/dma-mapping.h | |||
@@ -91,6 +91,7 @@ static inline dma_addr_t virt_to_dma(struct device *dev, void *addr) | |||
91 | */ | 91 | */ |
92 | static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) | 92 | static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) |
93 | { | 93 | { |
94 | debug_dma_mapping_error(dev, dma_addr); | ||
94 | return dma_addr == DMA_ERROR_CODE; | 95 | return dma_addr == DMA_ERROR_CODE; |
95 | } | 96 | } |
96 | 97 | ||
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 477a2d23ddf1..58bc3e4d3bd0 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -610,7 +610,7 @@ static void *__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, | |||
610 | gfp_t gfp, pgprot_t prot, bool is_coherent, const void *caller) | 610 | gfp_t gfp, pgprot_t prot, bool is_coherent, const void *caller) |
611 | { | 611 | { |
612 | u64 mask = get_coherent_dma_mask(dev); | 612 | u64 mask = get_coherent_dma_mask(dev); |
613 | struct page *page; | 613 | struct page *page = NULL; |
614 | void *addr; | 614 | void *addr; |
615 | 615 | ||
616 | #ifdef CONFIG_DMA_API_DEBUG | 616 | #ifdef CONFIG_DMA_API_DEBUG |
diff --git a/arch/arm/mm/vmregion.h b/arch/arm/mm/vmregion.h index bf312c354a21..0f5a5f2a2c7b 100644 --- a/arch/arm/mm/vmregion.h +++ b/arch/arm/mm/vmregion.h | |||
@@ -17,7 +17,6 @@ struct arm_vmregion { | |||
17 | struct list_head vm_list; | 17 | struct list_head vm_list; |
18 | unsigned long vm_start; | 18 | unsigned long vm_start; |
19 | unsigned long vm_end; | 19 | unsigned long vm_end; |
20 | void *priv; | ||
21 | int vm_active; | 20 | int vm_active; |
22 | const void *caller; | 21 | const void *caller; |
23 | }; | 22 | }; |
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 08b4c5209384..b34b5cda5ae1 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig | |||
@@ -236,7 +236,7 @@ config CMA_SIZE_PERCENTAGE | |||
236 | 236 | ||
237 | choice | 237 | choice |
238 | prompt "Selected region size" | 238 | prompt "Selected region size" |
239 | default CMA_SIZE_SEL_ABSOLUTE | 239 | default CMA_SIZE_SEL_MBYTES |
240 | 240 | ||
241 | config CMA_SIZE_SEL_MBYTES | 241 | config CMA_SIZE_SEL_MBYTES |
242 | bool "Use mega bytes value only" | 242 | bool "Use mega bytes value only" |
diff --git a/drivers/base/dma-coherent.c b/drivers/base/dma-coherent.c index 560a7173f810..bc256b641027 100644 --- a/drivers/base/dma-coherent.c +++ b/drivers/base/dma-coherent.c | |||
@@ -191,9 +191,8 @@ EXPORT_SYMBOL(dma_release_from_coherent); | |||
191 | * This checks whether the memory was allocated from the per-device | 191 | * This checks whether the memory was allocated from the per-device |
192 | * coherent memory pool and if so, maps that memory to the provided vma. | 192 | * coherent memory pool and if so, maps that memory to the provided vma. |
193 | * | 193 | * |
194 | * Returns 1 if we correctly mapped the memory, or 0 if | 194 | * Returns 1 if we correctly mapped the memory, or 0 if the caller should |
195 | * dma_release_coherent() should proceed with mapping memory from | 195 | * proceed with mapping memory from generic pools. |
196 | * generic pools. | ||
197 | */ | 196 | */ |
198 | int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma, | 197 | int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma, |
199 | void *vaddr, size_t size, int *ret) | 198 | void *vaddr, size_t size, int *ret) |
diff --git a/drivers/base/dma-contiguous.c b/drivers/base/dma-contiguous.c index 9a1469474f55..612afcc5a938 100644 --- a/drivers/base/dma-contiguous.c +++ b/drivers/base/dma-contiguous.c | |||
@@ -27,15 +27,12 @@ | |||
27 | #include <linux/mm.h> | 27 | #include <linux/mm.h> |
28 | #include <linux/mutex.h> | 28 | #include <linux/mutex.h> |
29 | #include <linux/page-isolation.h> | 29 | #include <linux/page-isolation.h> |
30 | #include <linux/sizes.h> | ||
30 | #include <linux/slab.h> | 31 | #include <linux/slab.h> |
31 | #include <linux/swap.h> | 32 | #include <linux/swap.h> |
32 | #include <linux/mm_types.h> | 33 | #include <linux/mm_types.h> |
33 | #include <linux/dma-contiguous.h> | 34 | #include <linux/dma-contiguous.h> |
34 | 35 | ||
35 | #ifndef SZ_1M | ||
36 | #define SZ_1M (1 << 20) | ||
37 | #endif | ||
38 | |||
39 | struct cma { | 36 | struct cma { |
40 | unsigned long base_pfn; | 37 | unsigned long base_pfn; |
41 | unsigned long count; | 38 | unsigned long count; |
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index bb90971182bd..b0012ab372a4 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -5825,7 +5825,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, | |||
5825 | ret = start_isolate_page_range(pfn_max_align_down(start), | 5825 | ret = start_isolate_page_range(pfn_max_align_down(start), |
5826 | pfn_max_align_up(end), migratetype); | 5826 | pfn_max_align_up(end), migratetype); |
5827 | if (ret) | 5827 | if (ret) |
5828 | goto done; | 5828 | return ret; |
5829 | 5829 | ||
5830 | ret = __alloc_contig_migrate_range(&cc, start, end); | 5830 | ret = __alloc_contig_migrate_range(&cc, start, end); |
5831 | if (ret) | 5831 | if (ret) |