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

Reply via email to