diff --git a/package/kernel/broadcom-diag/src/diag.c b/package/kernel/broadcom-diag/src/diag.c index c2a0d09194..1fad586c52 100644 --- a/package/kernel/broadcom-diag/src/diag.c +++ b/package/kernel/broadcom-diag/src/diag.c @@ -1424,13 +1424,20 @@ static inline void ssb_maskset32(struct ssb_device *dev, static void gpio_set_irqenable(int enabled, irqreturn_t (*handler)(int, void *)) { int irq; + int err; irq = gpio_to_irq(0); - if (irq == -EINVAL) return; + if (irq < 0) { + pr_err("no irq for gpio available\n"); + return; + } if (enabled) { - if (request_irq(irq, handler, IRQF_SHARED, "gpio", handler)) + err = request_irq(irq, handler, IRQF_SHARED, "gpio", handler); + if (err) { + pr_err("can not reqeust irq\n"); return; + } } else { free_irq(irq, handler); }