Module: xenomai-forge
Branch: master
Commit: 2d59922912010fce63a3d6088f51329bd073b353
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=2d59922912010fce63a3d6088f51329bd073b353

Author: Jan Kiszka <jan.kis...@siemens.com>
Date:   Fri Jan  4 20:32:17 2013 +0100

nucleus/intr: Fix output of timer interrupts in /proc/xenomai/{irq,stat}

XNARCH_TIMER_IRQ works on the current CPU, we need to check all CPUs if
a given IRQ serves there as timer. Also, properly decode RTHAL_TIMER_IPI
when listing IRQs.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>

---

 kernel/cobalt/nucleus/intr.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/kernel/cobalt/nucleus/intr.c b/kernel/cobalt/nucleus/intr.c
index a76d36a..befdb4d 100644
--- a/kernel/cobalt/nucleus/intr.c
+++ b/kernel/cobalt/nucleus/intr.c
@@ -883,7 +883,19 @@ void xnintr_affinity(xnintr_t *intr, cpumask_t cpumask)
 }
 EXPORT_SYMBOL_GPL(xnintr_affinity);
 
+static inline int xnintr_is_timer_irq(int irq)
+{
+       int cpu;
+
+       for_each_online_cpu(cpu)
+               if (irq == per_cpu(ipipe_percpu.hrtimer_irq, cpu))
+                       return 1;
+
+       return 0;
+}
+
 #ifdef CONFIG_XENO_OPT_STATS
+
 int xnintr_query_init(xnintr_iterator_t *iterator)
 {
        iterator->cpu = -1;
@@ -924,7 +936,7 @@ int xnintr_query_next(int irq, xnintr_iterator_t *iterator, 
char *name_buf)
        }
 
        if (!iterator->prev) {
-               if (irq == per_cpu(ipipe_percpu.hrtimer_irq, cpu))
+               if (xnintr_is_timer_irq(irq))
                        intr = &nktimer;
                else
                        intr = xnintr_shirq_first(irq);
@@ -977,7 +989,7 @@ static inline int format_irq_proc(unsigned int irq,
        int cpu;
 
        for_each_online_cpu(cpu)
-               if (irq == per_cpu(ipipe_percpu.hrtimer_irq, cpu)) {
+               if (xnintr_is_timer_irq(irq)) {
                        xnvfile_printf(it, "         [timer/%d]", cpu);
                        return 0;
                }


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to