Commit 8c9f08f9 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Greg Ungerer

m68k: Revive reporting of spurious interrupts

commit 2502b667 ("Change the m68knommu irq
handling to use the generic irq framework.") removed the reporting of spurious
interrupts on nommu (68328 and 68360).

Bring it back in a generic way, using "atomic_t irq_err_count", as that's what
most of the other architectures are using.
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
parent 739735d5
...@@ -28,3 +28,13 @@ asmlinkage void do_IRQ(int irq, struct pt_regs *regs) ...@@ -28,3 +28,13 @@ asmlinkage void do_IRQ(int irq, struct pt_regs *regs)
set_irq_regs(oldregs); set_irq_regs(oldregs);
} }
/* The number of spurious interrupts */
atomic_t irq_err_count;
int arch_show_interrupts(struct seq_file *p, int prec)
{
seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
return 0;
}
...@@ -236,7 +236,7 @@ ret_from_interrupt: ...@@ -236,7 +236,7 @@ ret_from_interrupt:
* Handler for uninitialized and spurious interrupts. * Handler for uninitialized and spurious interrupts.
*/ */
ENTRY(bad_interrupt) ENTRY(bad_interrupt)
addql #1,num_spurious addql #1,irq_err_count
rte rte
/* /*
......
...@@ -70,9 +70,6 @@ asmlinkage irqreturn_t inthandler7(void); ...@@ -70,9 +70,6 @@ asmlinkage irqreturn_t inthandler7(void);
extern e_vector *_ramvec; extern e_vector *_ramvec;
/* The number of spurious interrupts */
volatile unsigned int num_spurious;
/* The 68k family did not have a good way to determine the source /* The 68k family did not have a good way to determine the source
* of interrupts until later in the family. The EC000 core does * of interrupts until later in the family. The EC000 core does
* not provide the vector number on the stack, we vector everything * not provide the vector number on the stack, we vector everything
......
...@@ -157,7 +157,7 @@ ret_from_interrupt: ...@@ -157,7 +157,7 @@ ret_from_interrupt:
* Handler for uninitialized and spurious interrupts. * Handler for uninitialized and spurious interrupts.
*/ */
bad_interrupt: bad_interrupt:
addql #1,num_spurious addql #1,irq_err_count
rte rte
/* /*
......
...@@ -34,9 +34,6 @@ asmlinkage void inthandler(void); ...@@ -34,9 +34,6 @@ asmlinkage void inthandler(void);
extern void *_ramvec[]; extern void *_ramvec[];
/* The number of spurious interrupts */
volatile unsigned int num_spurious;
static void intc_irq_unmask(struct irq_data *d) static void intc_irq_unmask(struct irq_data *d)
{ {
pquicc->intr_cimr |= (1 << d->irq); pquicc->intr_cimr |= (1 << d->irq);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment