lkml.org 
[lkml]   [2014]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16 099/127] sparc32: dma_alloc_coherent must honour gfp flags
    Date
    3.16-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Daniel Hellstrom <daniel@gaisler.com>

    [ Upstream commit d1105287aabe88dbb3af825140badaa05cf0442c ]

    dma_zalloc_coherent() calls dma_alloc_coherent(__GFP_ZERO)
    but the sparc32 implementations sbus_alloc_coherent() and
    pci32_alloc_coherent() doesn't take the gfp flags into
    account.

    Tested on the SPARC32/LEON GRETH Ethernet driver which fails
    due to dma_alloc_coherent(__GFP_ZERO) returns non zeroed
    pages.

    Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/sparc/kernel/ioport.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    --- a/arch/sparc/kernel/ioport.c
    +++ b/arch/sparc/kernel/ioport.c
    @@ -278,7 +278,8 @@ static void *sbus_alloc_coherent(struct
    }

    order = get_order(len_total);
    - if ((va = __get_free_pages(GFP_KERNEL|__GFP_COMP, order)) == 0)
    + va = __get_free_pages(gfp, order);
    + if (va == 0)
    goto err_nopages;

    if ((res = kzalloc(sizeof(struct resource), GFP_KERNEL)) == NULL)
    @@ -443,7 +444,7 @@ static void *pci32_alloc_coherent(struct
    }

    order = get_order(len_total);
    - va = (void *) __get_free_pages(GFP_KERNEL, order);
    + va = (void *) __get_free_pages(gfp, order);
    if (va == NULL) {
    printk("pci_alloc_consistent: no %ld pages\n", len_total>>PAGE_SHIFT);
    goto err_nopages;



    \
     
     \ /
      Last update: 2014-10-28 08:01    [W:4.176 / U:0.876 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site