mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
driver-core: platform: Catch errors from calls to irq_get_irq_data
irq_get_irq_data() can return NULL, which results in a nasty crash. Check its return value before passing it on to irqd_set_trigger_type(). Signed-off-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
78618d395b
commit
60ca5e0d28
@ -108,9 +108,14 @@ int platform_get_irq(struct platform_device *dev, unsigned int num)
|
||||
* IORESOURCE_BITS correspond 1-to-1 to the IRQF_TRIGGER*
|
||||
* settings.
|
||||
*/
|
||||
if (r && r->flags & IORESOURCE_BITS)
|
||||
irqd_set_trigger_type(irq_get_irq_data(r->start),
|
||||
r->flags & IORESOURCE_BITS);
|
||||
if (r && r->flags & IORESOURCE_BITS) {
|
||||
struct irq_data *irqd;
|
||||
|
||||
irqd = irq_get_irq_data(r->start);
|
||||
if (!irqd)
|
||||
return -ENXIO;
|
||||
irqd_set_trigger_type(irqd, r->flags & IORESOURCE_BITS);
|
||||
}
|
||||
|
||||
return r ? r->start : -ENXIO;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user