From: Yinghai Lu <yinghai@kernel.org>
To: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [PATCH] x86: fix compiling with alpha
Date: Mon, 08 Dec 2008 14:06:17 -0800 [thread overview]
Message-ID: <493D9A59.2030508@kernel.org> (raw)
In-Reply-To: <20081208150129.GA21496@elte.hu>
Impact: fix
can not use irq_desc in stat.c for some arch
Signed-off-by: Yinghai Lu <yinghai@kernel.orgg>
---
fs/proc/stat.c | 20 +++++++++++++-------
include/linux/irq.h | 9 ---------
include/linux/irqnr.h | 19 ++++++++++++++++---
3 files changed, 29 insertions(+), 19 deletions(-)
Index: linux-2.6/fs/proc/stat.c
===================================================================
--- linux-2.6.orig/fs/proc/stat.c
+++ linux-2.6/fs/proc/stat.c
@@ -45,9 +45,12 @@ static int show_stat(struct seq_file *p,
softirq = cputime64_add(softirq, kstat_cpu(i).cpustat.softirq);
steal = cputime64_add(steal, kstat_cpu(i).cpustat.steal);
guest = cputime64_add(guest, kstat_cpu(i).cpustat.guest);
- for_each_irq_desc(j, desc) {
+ for_each_irq_nr(j) {
+#ifdef CONFIG_SPARSE_IRQ
+ desc = irq_to_desc(j);
if (!desc)
continue;
+#endif
sum += kstat_irqs_cpu(j, i);
}
sum += arch_irq_stat_cpu(i);
@@ -92,14 +95,17 @@ static int show_stat(struct seq_file *p,
seq_printf(p, "intr %llu", (unsigned long long)sum);
/* sum again ? it could be updated? */
- for (j = 0; j < NR_IRQS; j++) {
- desc = irq_to_desc(j);
+ for_each_irq_nr(j) {
per_irq_sum = 0;
-
- if (desc) {
- for_each_possible_cpu(i)
- per_irq_sum += kstat_irqs_cpu(j, i);
+#ifdef CONFIG_SPARSE_IRQ
+ desc = irq_to_desc(j);
+ if (!desc) {
+ seq_printf(p, " %u", per_irq_sum);
+ continue;
}
+#endif
+ for_each_possible_cpu(i)
+ per_irq_sum += kstat_irqs_cpu(j, i);
seq_printf(p, " %u", per_irq_sum);
}
Index: linux-2.6/include/linux/irq.h
===================================================================
--- linux-2.6.orig/include/linux/irq.h
+++ linux-2.6/include/linux/irq.h
@@ -198,7 +198,6 @@ extern void arch_init_copy_chip_data(str
extern void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc);
#ifndef CONFIG_SPARSE_IRQ
-
extern struct irq_desc irq_desc[NR_IRQS];
static inline struct irq_desc *irq_to_desc(unsigned int irq)
@@ -210,14 +209,6 @@ static inline struct irq_desc *irq_to_de
return irq_to_desc(irq);
}
-#ifdef CONFIG_GENERIC_HARDIRQS
-# define for_each_irq_desc(irq, desc) \
- for (irq = 0, desc = irq_desc; irq < nr_irqs; irq++, desc++)
-# define for_each_irq_desc_reverse(irq, desc) \
- for (irq = nr_irqs - 1, desc = irq_desc + (nr_irqs - 1); \
- irq >= 0; irq--, desc--)
-#endif
-
#else
extern struct irq_desc *irq_to_desc(unsigned int irq);
Index: linux-2.6/include/linux/irqnr.h
===================================================================
--- linux-2.6.orig/include/linux/irqnr.h
+++ linux-2.6/include/linux/irqnr.h
@@ -8,9 +8,22 @@
# define for_each_irq_desc(irq, desc) \
for (irq = 0; irq < nr_irqs; irq++)
-static inline early_sparse_irq_init(void)
-{
-}
+# define for_each_irq_desc_reverse(irq, desc) \
+ for (irq = nr_irqs - 1; irq >= 0; irq--)
+#else
+#ifndef CONFIG_SPARSE_IRQ
+
+struct irq_desc;
+extern int nr_irqs;
+# define for_each_irq_desc(irq, desc) \
+ for (irq = 0, desc = irq_desc; irq < nr_irqs; irq++, desc++)
+# define for_each_irq_desc_reverse(irq, desc) \
+ for (irq = nr_irqs - 1, desc = irq_desc + (nr_irqs - 1); \
+ irq >= 0; irq--, desc--)
#endif
+#endif
+
+#define for_each_irq_nr(irq) \
+ for (irq = 0; irq < nr_irqs; irq++)
#endif
next parent reply other threads:[~2008-12-08 22:07 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <86802c440812050120i6f5557dfo9c05bb43272ec807@mail.gmail.com>
[not found] ` <20081205103002.GA5325@elte.hu>
[not found] ` <49397CD0.9030301@kernel.org>
[not found] ` <20081208142307.GE14856@elte.hu>
[not found] ` <20081208150129.GA21496@elte.hu>
2008-12-08 22:06 ` Yinghai Lu [this message]
2008-12-09 3:17 ` [PATCH] x86: fix compiling with alpha Ingo Molnar
[not found] ` <20081208174506.GA30398@elte.hu>
[not found] ` <20081209031351.GA9092@elte.hu>
[not found] ` <493EBECB.4020106@kernel.org>
[not found] ` <20081209192622.GA8595@elte.hu>
[not found] ` <493ECD64.5060508@kernel.org>
[not found] ` <20081209200317.GA16787@elte.hu>
[not found] ` <493EDA86.8030702@kernel.org>
[not found] ` <20081212113514.GI32640@elte.hu>
2008-12-12 21:14 ` [PATCH] sparseirq: fix !SMP building #2 Yinghai Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=493D9A59.2030508@kernel.org \
--to=yinghai@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.