Skip to content
  • Johan Hovold's avatar
    gpio: fix memory leak and sleep-while-atomic · 00acc3dc
    Johan Hovold authored and Linus Walleij's avatar Linus Walleij committed
    Fix memory leak and sleep-while-atomic in gpiochip_remove.
    
    The memory leak was introduced by afa82fab ("gpio / ACPI: Move event
    handling registration to gpiolib irqchip helpers") that moved the
    release of acpi interrupt resources to gpiochip_irqchip_remove, but by
    then the resources are no longer accessible as the acpi_gpio_chip has
    already been freed by acpi_gpiochip_remove.
    
    Note that this also fixes a few potential sleep-while-atomics, which has
    been around since 14250520 ("gpio: add IRQ chip helpers in gpiolib")
    when the call to gpiochip_irqchip_remove while holding a spinlock was
    added (a couple of irq-domain paths can end up grabbing mutexes).
    
    Fixes: afa82fab ("gpio / ACPI: Move event handling registration to
    gpiolib irqchip helpers")
    Fixes: 14250520
    
     ("gpio: add IRQ chip helpers in gpiolib")
    Cc: stable <stable@vger.kernel.org>
    
    Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    00acc3dc