lkml.org 
[lkml]   [2019]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 18/23] net: Do not allocate page fragments that are not skb aligned
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: Alexander Duyck <alexander.h.duyck@linux.intel.com>

    [ Upstream commit 3bed3cc4156eedf652b4df72bdb35d4f1a2a739d ]

    This patch addresses the fact that there are drivers, specifically tun,
    that will call into the network page fragment allocators with buffer sizes
    that are not cache aligned. Doing this could result in data alignment
    and DMA performance issues as these fragment pools are also shared with the
    skb allocator and any other devices that will use napi_alloc_frags or
    netdev_alloc_frags.

    Fixes: ffde7328a36d ("net: Split netdev_alloc_frag into __alloc_page_frag and add __napi_alloc_frag")
    Reported-by: Jann Horn <jannh@google.com>
    Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/core/skbuff.c | 4 ++++
    1 file changed, 4 insertions(+)

    --- a/net/core/skbuff.c
    +++ b/net/core/skbuff.c
    @@ -353,6 +353,8 @@ static void *__netdev_alloc_frag(unsigne
    */
    void *netdev_alloc_frag(unsigned int fragsz)
    {
    + fragsz = SKB_DATA_ALIGN(fragsz);
    +
    return __netdev_alloc_frag(fragsz, GFP_ATOMIC | __GFP_COLD);
    }
    EXPORT_SYMBOL(netdev_alloc_frag);
    @@ -366,6 +368,8 @@ static void *__napi_alloc_frag(unsigned

    void *napi_alloc_frag(unsigned int fragsz)
    {
    + fragsz = SKB_DATA_ALIGN(fragsz);
    +
    return __napi_alloc_frag(fragsz, GFP_ATOMIC | __GFP_COLD);
    }
    EXPORT_SYMBOL(napi_alloc_frag);

    \
     
     \ /
      Last update: 2019-02-21 15:49    [W:4.263 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site