lkml.org 
[lkml]   [2018]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 73/94] s390/qeth: use vzalloc for QUERY OAT buffer
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: Wenjia Zhang <wenjia@linux.ibm.com>

    [ Upstream commit aec45e857c5538664edb76a60dd452e3265f37d1 ]

    qeth_query_oat_command() currently allocates the kernel buffer for
    the SIOC_QETH_QUERY_OAT ioctl with kzalloc. So on systems with
    fragmented memory, large allocations may fail (eg. the qethqoat tool by
    default uses 132KB).

    Solve this issue by using vzalloc, backing the allocation with
    non-contiguous memory.

    Signed-off-by: Wenjia Zhang <wenjia@linux.ibm.com>
    Reviewed-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/s390/net/qeth_core_main.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    --- a/drivers/s390/net/qeth_core_main.c
    +++ b/drivers/s390/net/qeth_core_main.c
    @@ -23,6 +23,7 @@
    #include <linux/netdevice.h>
    #include <linux/netdev_features.h>
    #include <linux/skbuff.h>
    +#include <linux/vmalloc.h>

    #include <net/iucv/af_iucv.h>
    #include <net/dsfield.h>
    @@ -4728,7 +4729,7 @@ static int qeth_query_oat_command(struct

    priv.buffer_len = oat_data.buffer_len;
    priv.response_len = 0;
    - priv.buffer = kzalloc(oat_data.buffer_len, GFP_KERNEL);
    + priv.buffer = vzalloc(oat_data.buffer_len);
    if (!priv.buffer) {
    rc = -ENOMEM;
    goto out;
    @@ -4769,7 +4770,7 @@ static int qeth_query_oat_command(struct
    rc = -EFAULT;

    out_free:
    - kfree(priv.buffer);
    + vfree(priv.buffer);
    out:
    return rc;
    }

    \
     
     \ /
      Last update: 2018-10-08 21:06    [W:6.618 / U:0.392 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site