Module: xenomai-3 Branch: master Commit: 590aa2a1513414ba729d3c203b3c9100a14b5408 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=590aa2a1513414ba729d3c203b3c9100a14b5408
Author: Philippe Gerum <r...@xenomai.org> Date: Wed Feb 25 10:48:04 2015 +0100 cobalt/intr: catch invalid status from IRQ handlers --- kernel/cobalt/intr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/cobalt/intr.c b/kernel/cobalt/intr.c index a9c1024..19fcc2c 100644 --- a/kernel/cobalt/intr.c +++ b/kernel/cobalt/intr.c @@ -326,6 +326,7 @@ static void xnintr_vec_handler(unsigned int irq, void *cookie) * while running the interrupt service routine. */ ret = intr->isr(intr); + XENO_WARN_ON_ONCE(USER, (ret & XN_IRQ_STATMASK) == 0); s |= ret; if (ret & XN_IRQ_HANDLED) { inc_irqstats(intr, sched, start); @@ -398,6 +399,7 @@ static void xnintr_edge_vec_handler(unsigned int irq, void *cookie) * while running the interrupt service routine. */ ret = intr->isr(intr); + XENO_WARN_ON_ONCE(USER, (ret & XN_IRQ_STATMASK) == 0); s |= ret; if (ret & XN_IRQ_HANDLED) { @@ -609,6 +611,7 @@ static void xnintr_irq_handler(unsigned int irq, void *cookie) } s = intr->isr(intr); + XENO_WARN_ON_ONCE(USER, (s & XN_IRQ_STATMASK) == 0); if (unlikely(s & XN_IRQ_NONE)) { if (++intr->unhandled == XNINTR_MAX_UNHANDLED) { printk(XENO_ERR "%s: IRQ%d not handled. Disabling IRQ line\n", _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git