lkml.org 
[lkml]   [2014]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16 257/357] gpio: Fix potential NULL handler data in chained irqchip handler
    Date
    3.16-stable review patch.  If anyone has any objections, please let me know.

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

    From: Jarkko Nikula <jarkko.nikula@linux.intel.com>

    commit 324b0398781e7afb846378dd2d8a4374faaf236b upstream.

    There is possibility with misconfigured pins that interrupt occurs instantly
    after setting irq_set_chained_handler() in gpiochip_set_chained_irqchip().
    Now if handler gets called before irq_set_handler_data() the handler gets
    NULL handler data.

    Fix this by moving irq_set_handler_data() call before
    irq_set_chained_handler() in gpiochip_set_chained_irqchip().

    Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
    Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpio/gpiolib.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/gpio/gpiolib.c
    +++ b/drivers/gpio/gpiolib.c
    @@ -1368,12 +1368,12 @@ void gpiochip_set_chained_irqchip(struct
    return;
    }

    - irq_set_chained_handler(parent_irq, parent_handler);
    /*
    * The parent irqchip is already using the chip_data for this
    * irqchip, so our callbacks simply use the handler_data.
    */
    irq_set_handler_data(parent_irq, gpiochip);
    + irq_set_chained_handler(parent_irq, parent_handler);
    }
    EXPORT_SYMBOL_GPL(gpiochip_set_chained_irqchip);




    \
     
     \ /
      Last update: 2014-10-04 02:41    [W:2.301 / U:1.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site