lkml.org 
[lkml]   [2018]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/4] gpio: Remove VLA from stmpe driver
    Date
    The new challenge is to remove VLAs from the kernel
    (see https://lkml.org/lkml/2018/3/7/621)

    This patch replaces a VLA with an appropriate call to kmalloc_array.

    Signed-off-by: Laura Abbott <labbott@redhat.com>
    ---
    drivers/gpio/gpio-stmpe.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpio/gpio-stmpe.c b/drivers/gpio/gpio-stmpe.c
    index f8d7d1cd8488..b7854850bcdb 100644
    --- a/drivers/gpio/gpio-stmpe.c
    +++ b/drivers/gpio/gpio-stmpe.c
    @@ -369,10 +369,14 @@ static irqreturn_t stmpe_gpio_irq(int irq, void *dev)
    struct stmpe *stmpe = stmpe_gpio->stmpe;
    u8 statmsbreg;
    int num_banks = DIV_ROUND_UP(stmpe->num_gpios, 8);
    - u8 status[num_banks];
    + u8 *status;
    int ret;
    int i;

    + status = kmalloc_array(num_banks, sizeof(*status), GFP_ATOMIC);
    + if (!status)
    + return IRQ_NONE;
    +
    /*
    * the stmpe_block_read() call below, imposes to set statmsbreg
    * with the register located at the lowest address. As STMPE1600
    @@ -424,6 +428,7 @@ static irqreturn_t stmpe_gpio_irq(int irq, void *dev)
    }
    }

    + kfree(status);
    return IRQ_HANDLED;
    }

    --
    2.14.3
    \
     
     \ /
      Last update: 2018-03-10 01:11    [W:4.581 / U:1.356 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site