]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.8-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Mar 2013 20:36:21 +0000 (13:36 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Mar 2013 20:36:21 +0000 (13:36 -0700)
added patches:
arm-dma-mapping-add-missing-gfp_dma-flag-for-atomic-buffer-allocation.patch

queue-3.8/arm-dma-mapping-add-missing-gfp_dma-flag-for-atomic-buffer-allocation.patch [new file with mode: 0644]
queue-3.8/series

diff --git a/queue-3.8/arm-dma-mapping-add-missing-gfp_dma-flag-for-atomic-buffer-allocation.patch b/queue-3.8/arm-dma-mapping-add-missing-gfp_dma-flag-for-atomic-buffer-allocation.patch
new file mode 100644 (file)
index 0000000..65d5596
--- /dev/null
@@ -0,0 +1,42 @@
+From 9d1400cf79afb49584b4873eb22cd5130cb341db Mon Sep 17 00:00:00 2001
+From: Marek Szyprowski <m.szyprowski@samsung.com>
+Date: Tue, 26 Feb 2013 07:46:24 +0100
+Subject: ARM: DMA-mapping: add missing GFP_DMA flag for atomic buffer allocation
+
+From: Marek Szyprowski <m.szyprowski@samsung.com>
+
+commit 9d1400cf79afb49584b4873eb22cd5130cb341db upstream.
+
+Atomic pool should always be allocated from DMA zone if such zone is
+available in the system to avoid issues caused by limited dma mask of
+any of the devices used for making an atomic allocation.
+
+Reported-by: Krzysztof Halasa <khc@pm.waw.pl>
+Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mm/dma-mapping.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/mm/dma-mapping.c
++++ b/arch/arm/mm/dma-mapping.c
+@@ -330,6 +330,7 @@ static int __init atomic_pool_init(void)
+ {
+       struct dma_pool *pool = &atomic_pool;
+       pgprot_t prot = pgprot_dmacoherent(pgprot_kernel);
++      gfp_t gfp = GFP_KERNEL | GFP_DMA;
+       unsigned long nr_pages = pool->size >> PAGE_SHIFT;
+       unsigned long *bitmap;
+       struct page *page;
+@@ -348,8 +349,8 @@ static int __init atomic_pool_init(void)
+       if (IS_ENABLED(CONFIG_CMA))
+               ptr = __alloc_from_contiguous(NULL, pool->size, prot, &page);
+       else
+-              ptr = __alloc_remap_buffer(NULL, pool->size, GFP_KERNEL, prot,
+-                                         &page, NULL);
++              ptr = __alloc_remap_buffer(NULL, pool->size, gfp, prot, &page,
++                                         NULL);
+       if (ptr) {
+               int i;
index 9a8129107cf163a7a6c3cac64bf3c1e757c57d04..17e0e0a33aa06bd7de5d9681973f3d5c4629d7f4 100644 (file)
@@ -94,3 +94,4 @@ udf-fix-bitmap-overflow-on-large-filesystems-with-small-block-size.patch
 usb-garmin_gps-fix-memory-leak-on-disconnect.patch
 usb-io_ti-fix-get_icount-for-two-port-adapters.patch
 usb-musb-da8xx-fix-build-breakage-due-to-typo.patch
+arm-dma-mapping-add-missing-gfp_dma-flag-for-atomic-buffer-allocation.patch