All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
To: linux-kernel@vger.kernel.org
Cc: mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	jolsa@redhat.com, namhyung@kernel.org, catalin.marinas@arm.com,
	will@kernel.org, msalter@redhat.com, jacquiot.aurelien@gmail.com,
	gerg@linux-m68k.org, geert@linux-m68k.org,
	tsbogend@alpha.franken.de, James.Bottomley@HansenPartnership.com,
	deller@gmx.de, benh@kernel.crashing.org, paulus@samba.org,
	ysato@users.sourceforge.jp, dalias@libc.org, davem@davemloft.net,
	tglx@linutronix.de, bp@alien8.de, x86@kernel.org, hpa@zytor.com,
	linus.walleij@linaro.org, bgolaszewski@baylibre.com,
	maz@kernel.org, tony@atomide.com, arnd@arndb.de,
	linux-alpha@vger.kernel.org, linux-c6x-dev@linux-c6x.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-gpio@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-arch@vger.kernel.org
Subject: [PATCH 16/23] arch: alpha: use generic irq error counter
Date: Fri, 18 Dec 2020 15:31:15 +0100	[thread overview]
Message-ID: <20201218143122.19459-17-info@metux.net> (raw)
In-Reply-To: <20201218143122.19459-1-info@metux.net>

Use the newly introduced irq error counter, that's already maintained
by all callers of ack_bad_irq(), in order to remove duplicate code.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
---
 arch/alpha/include/asm/hardirq.h |  3 ---
 arch/alpha/include/asm/hw_irq.h  |  2 --
 arch/alpha/kernel/irq.c          | 12 +++---------
 arch/alpha/kernel/irq_alpha.c    |  5 +++--
 arch/alpha/kernel/perf_event.c   |  6 +++---
 5 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/arch/alpha/include/asm/hardirq.h b/arch/alpha/include/asm/hardirq.h
index 5ce5b34e8a1a..0bbc9947e364 100644
--- a/arch/alpha/include/asm/hardirq.h
+++ b/arch/alpha/include/asm/hardirq.h
@@ -2,9 +2,6 @@
 #ifndef _ALPHA_HARDIRQ_H
 #define _ALPHA_HARDIRQ_H
 
-void ack_bad_irq(unsigned int irq);
-#define ack_bad_irq ack_bad_irq
-
 #include <asm-generic/hardirq.h>
 
 #endif /* _ALPHA_HARDIRQ_H */
diff --git a/arch/alpha/include/asm/hw_irq.h b/arch/alpha/include/asm/hw_irq.h
index e2d81ac0d934..0be79f3a6cae 100644
--- a/arch/alpha/include/asm/hw_irq.h
+++ b/arch/alpha/include/asm/hw_irq.h
@@ -2,8 +2,6 @@
 #ifndef _ALPHA_HW_IRQ_H
 #define _ALPHA_HW_IRQ_H
 
-
-extern volatile unsigned long irq_err_count;
 DECLARE_PER_CPU(unsigned long, irq_pmi_count);
 
 #ifdef CONFIG_ALPHA_GENERIC
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c
index c1980eea75a6..2b7dad83e0dc 100644
--- a/arch/alpha/kernel/irq.c
+++ b/arch/alpha/kernel/irq.c
@@ -25,18 +25,12 @@
 #include <linux/seq_file.h>
 #include <linux/profile.h>
 #include <linux/bitops.h>
-
+#include <asm-generic/irq-err.h>
 #include <asm/io.h>
 #include <linux/uaccess.h>
 
-volatile unsigned long irq_err_count;
 DEFINE_PER_CPU(unsigned long, irq_pmi_count);
 
-void ack_bad_irq(unsigned int irq)
-{
-	irq_err_count++;
-}
-
 #ifdef CONFIG_SMP 
 static char irq_user_affinity[NR_IRQS];
 
@@ -79,7 +73,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
 	for_each_online_cpu(j)
 		seq_printf(p, "%10lu ", per_cpu(irq_pmi_count, j));
 	seq_puts(p, "          Performance Monitoring\n");
-	seq_printf(p, "ERR: %10lu\n", irq_err_count);
+	seq_printf(p, "ERR: %10lu\n", irq_err_get());
 	return 0;
 }
 
@@ -109,7 +103,7 @@ handle_irq(int irq)
 	
 	if (!desc || ((unsigned) irq > ACTUAL_NR_IRQS &&
 	    illegal_count < MAX_ILLEGAL_IRQS)) {
-		irq_err_count++;
+		irq_err_inc();
 		illegal_count++;
 		printk(KERN_CRIT "device_interrupt: invalid interrupt %d\n",
 		       irq);
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c
index d17e44c99df9..3b6373cf73d9 100644
--- a/arch/alpha/kernel/irq_alpha.c
+++ b/arch/alpha/kernel/irq_alpha.c
@@ -13,6 +13,7 @@
 #include <asm/dma.h>
 #include <asm/perf_event.h>
 #include <asm/mce.h>
+#include <asm-generic/irq-err.h>
 
 #include "proto.h"
 #include "irq_impl.h"
@@ -30,7 +31,7 @@ EXPORT_SYMBOL(__min_ipl);
 static void
 dummy_perf(unsigned long vector, struct pt_regs *regs)
 {
-	irq_err_count++;
+	irq_err_inc();
 	printk(KERN_CRIT "Performance counter interrupt!\n");
 }
 
@@ -60,7 +61,7 @@ do_entInt(unsigned long type, unsigned long vector,
 		handle_ipi(regs);
 		return;
 #else
-		irq_err_count++;
+		irq_err_inc();
 		printk(KERN_CRIT "Interprocessor interrupt? "
 		       "You must be kidding!\n");
 #endif
diff --git a/arch/alpha/kernel/perf_event.c b/arch/alpha/kernel/perf_event.c
index e7a59d927d78..d855cece7bb1 100644
--- a/arch/alpha/kernel/perf_event.c
+++ b/arch/alpha/kernel/perf_event.c
@@ -16,7 +16,7 @@
 #include <linux/kdebug.h>
 #include <linux/mutex.h>
 #include <linux/init.h>
-
+#include <asm-generic/irq-err.h>
 #include <asm/hwrpb.h>
 #include <linux/atomic.h>
 #include <asm/irq.h>
@@ -823,7 +823,7 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
 	/* la_ptr is the counter that overflowed. */
 	if (unlikely(la_ptr >= alpha_pmu->num_pmcs)) {
 		/* This should never occur! */
-		irq_err_count++;
+		irq_err_inc();
 		pr_warn("PMI: silly index %ld\n", la_ptr);
 		wrperfmon(PERFMON_CMD_ENABLE, cpuc->idx_mask);
 		return;
@@ -846,7 +846,7 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
 
 	if (unlikely(!event)) {
 		/* This should never occur! */
-		irq_err_count++;
+		irq_err_inc();
 		pr_warn("PMI: No event at index %d!\n", idx);
 		wrperfmon(PERFMON_CMD_ENABLE, cpuc->idx_mask);
 		return;
-- 
2.11.0


WARNING: multiple messages have this Message-ID (diff)
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
To: linux-kernel@vger.kernel.org
Cc: mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	jolsa@redhat.com, namhyung@kernel.org, catalin.marinas@arm.com,
	will@kernel.org, msalter@redhat.com, jacquiot.aurelien@gmail.com,
	gerg@linux-m68k.org, geert@linux-m68k.org,
	tsbogend@alpha.franken.de, James.Bottomley@HansenPartnership.com,
	deller@gmx.de, benh@kernel.crashing.org, paulus@samba.org,
	ysato@users.sourceforge.jp, dalias@libc.org, davem@davemloft.net,
	tglx@linutronix.de, bp@alien8.de, x86@kernel.org, hpa@zytor.com,
	linus.walleij@linaro.org, bgolaszewski@baylibre.com,
	maz@kernel.org, tony@atomide.com, arnd@arndb.de,
	linux-alpha@vger.kernel.org, linux-c6x-dev@linux-c6x.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-gpio@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-arch@vger.kernel.org
Subject: [PATCH 16/23] arch: alpha: use generic irq error counter
Date: Fri, 18 Dec 2020 14:31:15 +0000	[thread overview]
Message-ID: <20201218143122.19459-17-info@metux.net> (raw)
In-Reply-To: <20201218143122.19459-1-info@metux.net>

Use the newly introduced irq error counter, that's already maintained
by all callers of ack_bad_irq(), in order to remove duplicate code.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
---
 arch/alpha/include/asm/hardirq.h |  3 ---
 arch/alpha/include/asm/hw_irq.h  |  2 --
 arch/alpha/kernel/irq.c          | 12 +++---------
 arch/alpha/kernel/irq_alpha.c    |  5 +++--
 arch/alpha/kernel/perf_event.c   |  6 +++---
 5 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/arch/alpha/include/asm/hardirq.h b/arch/alpha/include/asm/hardirq.h
index 5ce5b34e8a1a..0bbc9947e364 100644
--- a/arch/alpha/include/asm/hardirq.h
+++ b/arch/alpha/include/asm/hardirq.h
@@ -2,9 +2,6 @@
 #ifndef _ALPHA_HARDIRQ_H
 #define _ALPHA_HARDIRQ_H
 
-void ack_bad_irq(unsigned int irq);
-#define ack_bad_irq ack_bad_irq
-
 #include <asm-generic/hardirq.h>
 
 #endif /* _ALPHA_HARDIRQ_H */
diff --git a/arch/alpha/include/asm/hw_irq.h b/arch/alpha/include/asm/hw_irq.h
index e2d81ac0d934..0be79f3a6cae 100644
--- a/arch/alpha/include/asm/hw_irq.h
+++ b/arch/alpha/include/asm/hw_irq.h
@@ -2,8 +2,6 @@
 #ifndef _ALPHA_HW_IRQ_H
 #define _ALPHA_HW_IRQ_H
 
-
-extern volatile unsigned long irq_err_count;
 DECLARE_PER_CPU(unsigned long, irq_pmi_count);
 
 #ifdef CONFIG_ALPHA_GENERIC
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c
index c1980eea75a6..2b7dad83e0dc 100644
--- a/arch/alpha/kernel/irq.c
+++ b/arch/alpha/kernel/irq.c
@@ -25,18 +25,12 @@
 #include <linux/seq_file.h>
 #include <linux/profile.h>
 #include <linux/bitops.h>
-
+#include <asm-generic/irq-err.h>
 #include <asm/io.h>
 #include <linux/uaccess.h>
 
-volatile unsigned long irq_err_count;
 DEFINE_PER_CPU(unsigned long, irq_pmi_count);
 
-void ack_bad_irq(unsigned int irq)
-{
-	irq_err_count++;
-}
-
 #ifdef CONFIG_SMP 
 static char irq_user_affinity[NR_IRQS];
 
@@ -79,7 +73,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
 	for_each_online_cpu(j)
 		seq_printf(p, "%10lu ", per_cpu(irq_pmi_count, j));
 	seq_puts(p, "          Performance Monitoring\n");
-	seq_printf(p, "ERR: %10lu\n", irq_err_count);
+	seq_printf(p, "ERR: %10lu\n", irq_err_get());
 	return 0;
 }
 
@@ -109,7 +103,7 @@ handle_irq(int irq)
 	
 	if (!desc || ((unsigned) irq > ACTUAL_NR_IRQS &&
 	    illegal_count < MAX_ILLEGAL_IRQS)) {
-		irq_err_count++;
+		irq_err_inc();
 		illegal_count++;
 		printk(KERN_CRIT "device_interrupt: invalid interrupt %d\n",
 		       irq);
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c
index d17e44c99df9..3b6373cf73d9 100644
--- a/arch/alpha/kernel/irq_alpha.c
+++ b/arch/alpha/kernel/irq_alpha.c
@@ -13,6 +13,7 @@
 #include <asm/dma.h>
 #include <asm/perf_event.h>
 #include <asm/mce.h>
+#include <asm-generic/irq-err.h>
 
 #include "proto.h"
 #include "irq_impl.h"
@@ -30,7 +31,7 @@ EXPORT_SYMBOL(__min_ipl);
 static void
 dummy_perf(unsigned long vector, struct pt_regs *regs)
 {
-	irq_err_count++;
+	irq_err_inc();
 	printk(KERN_CRIT "Performance counter interrupt!\n");
 }
 
@@ -60,7 +61,7 @@ do_entInt(unsigned long type, unsigned long vector,
 		handle_ipi(regs);
 		return;
 #else
-		irq_err_count++;
+		irq_err_inc();
 		printk(KERN_CRIT "Interprocessor interrupt? "
 		       "You must be kidding!\n");
 #endif
diff --git a/arch/alpha/kernel/perf_event.c b/arch/alpha/kernel/perf_event.c
index e7a59d927d78..d855cece7bb1 100644
--- a/arch/alpha/kernel/perf_event.c
+++ b/arch/alpha/kernel/perf_event.c
@@ -16,7 +16,7 @@
 #include <linux/kdebug.h>
 #include <linux/mutex.h>
 #include <linux/init.h>
-
+#include <asm-generic/irq-err.h>
 #include <asm/hwrpb.h>
 #include <linux/atomic.h>
 #include <asm/irq.h>
@@ -823,7 +823,7 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
 	/* la_ptr is the counter that overflowed. */
 	if (unlikely(la_ptr >= alpha_pmu->num_pmcs)) {
 		/* This should never occur! */
-		irq_err_count++;
+		irq_err_inc();
 		pr_warn("PMI: silly index %ld\n", la_ptr);
 		wrperfmon(PERFMON_CMD_ENABLE, cpuc->idx_mask);
 		return;
@@ -846,7 +846,7 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
 
 	if (unlikely(!event)) {
 		/* This should never occur! */
-		irq_err_count++;
+		irq_err_inc();
 		pr_warn("PMI: No event at index %d!\n", idx);
 		wrperfmon(PERFMON_CMD_ENABLE, cpuc->idx_mask);
 		return;
-- 
2.11.0

WARNING: multiple messages have this Message-ID (diff)
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
To: linux-kernel@vger.kernel.org
Cc: mark.rutland@arm.com, dalias@libc.org,
	linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	alexander.shishkin@linux.intel.com, linus.walleij@linaro.org,
	James.Bottomley@HansenPartnership.com, paulus@samba.org,
	hpa@zytor.com, sparclinux@vger.kernel.org, will@kernel.org,
	gerg@linux-m68k.org, linux-arch@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-c6x-dev@linux-c6x.org,
	ysato@users.sourceforge.jp, jolsa@redhat.com, deller@gmx.de,
	x86@kernel.org, bgolaszewski@baylibre.com, tony@atomide.com,
	geert@linux-m68k.org, catalin.marinas@arm.com,
	linux-alpha@vger.kernel.org, arnd@arndb.de, msalter@redhat.com,
	jacquiot.aurelien@gmail.com, linux-gpio@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, bp@alien8.de,
	namhyung@kernel.org, tglx@linutronix.de,
	linux-omap@vger.kernel.org, tsbogend@alpha.franken.de,
	linux-parisc@vger.kernel.org, linux-mips@vger.kernel.org,
	maz@kernel.org, linuxppc-dev@lists.ozlabs.org,
	davem@davemloft.net
Subject: [PATCH 16/23] arch: alpha: use generic irq error counter
Date: Fri, 18 Dec 2020 15:31:15 +0100	[thread overview]
Message-ID: <20201218143122.19459-17-info@metux.net> (raw)
In-Reply-To: <20201218143122.19459-1-info@metux.net>

Use the newly introduced irq error counter, that's already maintained
by all callers of ack_bad_irq(), in order to remove duplicate code.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
---
 arch/alpha/include/asm/hardirq.h |  3 ---
 arch/alpha/include/asm/hw_irq.h  |  2 --
 arch/alpha/kernel/irq.c          | 12 +++---------
 arch/alpha/kernel/irq_alpha.c    |  5 +++--
 arch/alpha/kernel/perf_event.c   |  6 +++---
 5 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/arch/alpha/include/asm/hardirq.h b/arch/alpha/include/asm/hardirq.h
index 5ce5b34e8a1a..0bbc9947e364 100644
--- a/arch/alpha/include/asm/hardirq.h
+++ b/arch/alpha/include/asm/hardirq.h
@@ -2,9 +2,6 @@
 #ifndef _ALPHA_HARDIRQ_H
 #define _ALPHA_HARDIRQ_H
 
-void ack_bad_irq(unsigned int irq);
-#define ack_bad_irq ack_bad_irq
-
 #include <asm-generic/hardirq.h>
 
 #endif /* _ALPHA_HARDIRQ_H */
diff --git a/arch/alpha/include/asm/hw_irq.h b/arch/alpha/include/asm/hw_irq.h
index e2d81ac0d934..0be79f3a6cae 100644
--- a/arch/alpha/include/asm/hw_irq.h
+++ b/arch/alpha/include/asm/hw_irq.h
@@ -2,8 +2,6 @@
 #ifndef _ALPHA_HW_IRQ_H
 #define _ALPHA_HW_IRQ_H
 
-
-extern volatile unsigned long irq_err_count;
 DECLARE_PER_CPU(unsigned long, irq_pmi_count);
 
 #ifdef CONFIG_ALPHA_GENERIC
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c
index c1980eea75a6..2b7dad83e0dc 100644
--- a/arch/alpha/kernel/irq.c
+++ b/arch/alpha/kernel/irq.c
@@ -25,18 +25,12 @@
 #include <linux/seq_file.h>
 #include <linux/profile.h>
 #include <linux/bitops.h>
-
+#include <asm-generic/irq-err.h>
 #include <asm/io.h>
 #include <linux/uaccess.h>
 
-volatile unsigned long irq_err_count;
 DEFINE_PER_CPU(unsigned long, irq_pmi_count);
 
-void ack_bad_irq(unsigned int irq)
-{
-	irq_err_count++;
-}
-
 #ifdef CONFIG_SMP 
 static char irq_user_affinity[NR_IRQS];
 
@@ -79,7 +73,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
 	for_each_online_cpu(j)
 		seq_printf(p, "%10lu ", per_cpu(irq_pmi_count, j));
 	seq_puts(p, "          Performance Monitoring\n");
-	seq_printf(p, "ERR: %10lu\n", irq_err_count);
+	seq_printf(p, "ERR: %10lu\n", irq_err_get());
 	return 0;
 }
 
@@ -109,7 +103,7 @@ handle_irq(int irq)
 	
 	if (!desc || ((unsigned) irq > ACTUAL_NR_IRQS &&
 	    illegal_count < MAX_ILLEGAL_IRQS)) {
-		irq_err_count++;
+		irq_err_inc();
 		illegal_count++;
 		printk(KERN_CRIT "device_interrupt: invalid interrupt %d\n",
 		       irq);
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c
index d17e44c99df9..3b6373cf73d9 100644
--- a/arch/alpha/kernel/irq_alpha.c
+++ b/arch/alpha/kernel/irq_alpha.c
@@ -13,6 +13,7 @@
 #include <asm/dma.h>
 #include <asm/perf_event.h>
 #include <asm/mce.h>
+#include <asm-generic/irq-err.h>
 
 #include "proto.h"
 #include "irq_impl.h"
@@ -30,7 +31,7 @@ EXPORT_SYMBOL(__min_ipl);
 static void
 dummy_perf(unsigned long vector, struct pt_regs *regs)
 {
-	irq_err_count++;
+	irq_err_inc();
 	printk(KERN_CRIT "Performance counter interrupt!\n");
 }
 
@@ -60,7 +61,7 @@ do_entInt(unsigned long type, unsigned long vector,
 		handle_ipi(regs);
 		return;
 #else
-		irq_err_count++;
+		irq_err_inc();
 		printk(KERN_CRIT "Interprocessor interrupt? "
 		       "You must be kidding!\n");
 #endif
diff --git a/arch/alpha/kernel/perf_event.c b/arch/alpha/kernel/perf_event.c
index e7a59d927d78..d855cece7bb1 100644
--- a/arch/alpha/kernel/perf_event.c
+++ b/arch/alpha/kernel/perf_event.c
@@ -16,7 +16,7 @@
 #include <linux/kdebug.h>
 #include <linux/mutex.h>
 #include <linux/init.h>
-
+#include <asm-generic/irq-err.h>
 #include <asm/hwrpb.h>
 #include <linux/atomic.h>
 #include <asm/irq.h>
@@ -823,7 +823,7 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
 	/* la_ptr is the counter that overflowed. */
 	if (unlikely(la_ptr >= alpha_pmu->num_pmcs)) {
 		/* This should never occur! */
-		irq_err_count++;
+		irq_err_inc();
 		pr_warn("PMI: silly index %ld\n", la_ptr);
 		wrperfmon(PERFMON_CMD_ENABLE, cpuc->idx_mask);
 		return;
@@ -846,7 +846,7 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
 
 	if (unlikely(!event)) {
 		/* This should never occur! */
-		irq_err_count++;
+		irq_err_inc();
 		pr_warn("PMI: No event at index %d!\n", idx);
 		wrperfmon(PERFMON_CMD_ENABLE, cpuc->idx_mask);
 		return;
-- 
2.11.0


WARNING: multiple messages have this Message-ID (diff)
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
To: linux-kernel@vger.kernel.org
Cc: mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	jolsa@redhat.com, namhyung@kernel.org, catalin.marinas@arm.com,
	will@kernel.org, msalter@redhat.com, jacquiot.aurelien@gmail.com,
	gerg@linux-m68k.org, geert@linux-m68k.org,
	tsbogend@alpha.franken.de, James.Bottomley@HansenPartnership.com,
	deller@gmx.de, benh@kernel.crashing.org, paulus@samba.org,
	ysato@users.sourceforge.jp, dalias@libc.org, davem@davemloft.net,
	tglx@linutronix.de, bp@alien8.de, x86@kernel.org, hpa@zytor.com,
	linus.walleij@linaro.org, bgolaszewski@baylibre.com,
	maz@kernel.org, tony@atomide.com, arnd@arndb.de,
	linux-alpha@vger.kernel.org, linux-c6x-dev@linux-c6x.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.
Subject: [PATCH 16/23] arch: alpha: use generic irq error counter
Date: Fri, 18 Dec 2020 15:31:15 +0100	[thread overview]
Message-ID: <20201218143122.19459-17-info@metux.net> (raw)
In-Reply-To: <20201218143122.19459-1-info@metux.net>

Use the newly introduced irq error counter, that's already maintained
by all callers of ack_bad_irq(), in order to remove duplicate code.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
---
 arch/alpha/include/asm/hardirq.h |  3 ---
 arch/alpha/include/asm/hw_irq.h  |  2 --
 arch/alpha/kernel/irq.c          | 12 +++---------
 arch/alpha/kernel/irq_alpha.c    |  5 +++--
 arch/alpha/kernel/perf_event.c   |  6 +++---
 5 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/arch/alpha/include/asm/hardirq.h b/arch/alpha/include/asm/hardirq.h
index 5ce5b34e8a1a..0bbc9947e364 100644
--- a/arch/alpha/include/asm/hardirq.h
+++ b/arch/alpha/include/asm/hardirq.h
@@ -2,9 +2,6 @@
 #ifndef _ALPHA_HARDIRQ_H
 #define _ALPHA_HARDIRQ_H
 
-void ack_bad_irq(unsigned int irq);
-#define ack_bad_irq ack_bad_irq
-
 #include <asm-generic/hardirq.h>
 
 #endif /* _ALPHA_HARDIRQ_H */
diff --git a/arch/alpha/include/asm/hw_irq.h b/arch/alpha/include/asm/hw_irq.h
index e2d81ac0d934..0be79f3a6cae 100644
--- a/arch/alpha/include/asm/hw_irq.h
+++ b/arch/alpha/include/asm/hw_irq.h
@@ -2,8 +2,6 @@
 #ifndef _ALPHA_HW_IRQ_H
 #define _ALPHA_HW_IRQ_H
 
-
-extern volatile unsigned long irq_err_count;
 DECLARE_PER_CPU(unsigned long, irq_pmi_count);
 
 #ifdef CONFIG_ALPHA_GENERIC
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c
index c1980eea75a6..2b7dad83e0dc 100644
--- a/arch/alpha/kernel/irq.c
+++ b/arch/alpha/kernel/irq.c
@@ -25,18 +25,12 @@
 #include <linux/seq_file.h>
 #include <linux/profile.h>
 #include <linux/bitops.h>
-
+#include <asm-generic/irq-err.h>
 #include <asm/io.h>
 #include <linux/uaccess.h>
 
-volatile unsigned long irq_err_count;
 DEFINE_PER_CPU(unsigned long, irq_pmi_count);
 
-void ack_bad_irq(unsigned int irq)
-{
-	irq_err_count++;
-}
-
 #ifdef CONFIG_SMP 
 static char irq_user_affinity[NR_IRQS];
 
@@ -79,7 +73,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
 	for_each_online_cpu(j)
 		seq_printf(p, "%10lu ", per_cpu(irq_pmi_count, j));
 	seq_puts(p, "          Performance Monitoring\n");
-	seq_printf(p, "ERR: %10lu\n", irq_err_count);
+	seq_printf(p, "ERR: %10lu\n", irq_err_get());
 	return 0;
 }
 
@@ -109,7 +103,7 @@ handle_irq(int irq)
 	
 	if (!desc || ((unsigned) irq > ACTUAL_NR_IRQS &&
 	    illegal_count < MAX_ILLEGAL_IRQS)) {
-		irq_err_count++;
+		irq_err_inc();
 		illegal_count++;
 		printk(KERN_CRIT "device_interrupt: invalid interrupt %d\n",
 		       irq);
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c
index d17e44c99df9..3b6373cf73d9 100644
--- a/arch/alpha/kernel/irq_alpha.c
+++ b/arch/alpha/kernel/irq_alpha.c
@@ -13,6 +13,7 @@
 #include <asm/dma.h>
 #include <asm/perf_event.h>
 #include <asm/mce.h>
+#include <asm-generic/irq-err.h>
 
 #include "proto.h"
 #include "irq_impl.h"
@@ -30,7 +31,7 @@ EXPORT_SYMBOL(__min_ipl);
 static void
 dummy_perf(unsigned long vector, struct pt_regs *regs)
 {
-	irq_err_count++;
+	irq_err_inc();
 	printk(KERN_CRIT "Performance counter interrupt!\n");
 }
 
@@ -60,7 +61,7 @@ do_entInt(unsigned long type, unsigned long vector,
 		handle_ipi(regs);
 		return;
 #else
-		irq_err_count++;
+		irq_err_inc();
 		printk(KERN_CRIT "Interprocessor interrupt? "
 		       "You must be kidding!\n");
 #endif
diff --git a/arch/alpha/kernel/perf_event.c b/arch/alpha/kernel/perf_event.c
index e7a59d927d78..d855cece7bb1 100644
--- a/arch/alpha/kernel/perf_event.c
+++ b/arch/alpha/kernel/perf_event.c
@@ -16,7 +16,7 @@
 #include <linux/kdebug.h>
 #include <linux/mutex.h>
 #include <linux/init.h>
-
+#include <asm-generic/irq-err.h>
 #include <asm/hwrpb.h>
 #include <linux/atomic.h>
 #include <asm/irq.h>
@@ -823,7 +823,7 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
 	/* la_ptr is the counter that overflowed. */
 	if (unlikely(la_ptr >= alpha_pmu->num_pmcs)) {
 		/* This should never occur! */
-		irq_err_count++;
+		irq_err_inc();
 		pr_warn("PMI: silly index %ld\n", la_ptr);
 		wrperfmon(PERFMON_CMD_ENABLE, cpuc->idx_mask);
 		return;
@@ -846,7 +846,7 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
 
 	if (unlikely(!event)) {
 		/* This should never occur! */
-		irq_err_count++;
+		irq_err_inc();
 		pr_warn("PMI: No event at index %d!\n", idx);
 		wrperfmon(PERFMON_CMD_ENABLE, cpuc->idx_mask);
 		return;
-- 
2.11.0


  parent reply	other threads:[~2020-12-18 14:35 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-18 14:30 cleanup handling of bad IRQs Enrico Weigelt, metux IT consult
2020-12-18 14:30 ` Enrico Weigelt, metux IT consult
2020-12-18 14:30 ` Enrico Weigelt, metux IT consult
2020-12-18 14:30 ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 01/23] kernel: irq: irqdescs: warn on spurious IRQ Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 15:55   ` Andy Shevchenko
2020-12-18 15:55     ` Andy Shevchenko
2020-12-18 15:55     ` Andy Shevchenko
2020-12-18 15:55     ` Andy Shevchenko
2020-12-18 15:55     ` Andy Shevchenko
2020-12-21  5:44     ` Michael Ellerman
2020-12-21  5:44       ` Michael Ellerman
2020-12-21  5:44       ` Michael Ellerman
2020-12-21  5:44       ` Michael Ellerman
2020-12-21  5:44       ` Michael Ellerman
2020-12-21  9:27       ` Andy Shevchenko
2020-12-21  9:27         ` Andy Shevchenko
2020-12-21  9:27         ` Andy Shevchenko
2020-12-21  9:27         ` Andy Shevchenko
2020-12-21  9:27         ` Andy Shevchenko
2020-12-18 14:31 ` [PATCH 02/23] arch: alpha: drop misleading warning " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 03/23] arch: arm: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 04/23] arch: c6x: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 05/23] arch: ia64: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 06/23] arch: mips: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 07/23] arch: parisc: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 08/23] arch: powerpc: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 09/23] arch: s390: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 10/23] arch: sh: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 11/23] arch: sparc: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 12/23] arch: x86: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 13/23] arch: generic: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 14/23] kernel: generic counter for interrupt errors Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 15/23] arch: mips: use generic irq error counter Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` Enrico Weigelt, metux IT consult [this message]
2020-12-18 14:31   ` [PATCH 16/23] arch: alpha: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 17/23] arch: arm: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 18/23] arch: arm64: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31 ` [PATCH 19/23] arch: c6x: " Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:31   ` Enrico Weigelt, metux IT consult
2020-12-18 14:57 (repost) cleaning up handling of bad IRQs Enrico Weigelt, metux IT consult
2020-12-18 14:57 ` [PATCH 16/23] arch: alpha: use generic irq error counter Enrico Weigelt, metux IT consult
2020-12-18 14:57   ` Enrico Weigelt, metux IT consult
2020-12-18 14:57   ` Enrico Weigelt, metux IT consult
2020-12-18 14:57   ` Enrico Weigelt, metux IT consult

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=20201218143122.19459-17-info@metux.net \
    --to=info@metux.net \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=bgolaszewski@baylibre.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=dalias@libc.org \
    --cc=davem@davemloft.net \
    --cc=deller@gmx.de \
    --cc=geert@linux-m68k.org \
    --cc=gerg@linux-m68k.org \
    --cc=hpa@zytor.com \
    --cc=jacquiot.aurelien@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-c6x-dev@linux-c6x.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=msalter@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=paulus@samba.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tony@atomide.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    /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.