[uClinux-dev] Re: [PATCH] m68k: Revive reporting of spurious interrupts

Greg Ungerer gerg at snapgear.com
Wed Jul 13 23:47:54 EDT 2011


Hi Geert,

On 14/07/11 04:29, Geert Uytterhoeven wrote:
> commit 2502b667ea835ee16685c74b2a0d89ba8afe117a ("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: Geert Uytterhoeven<geert at linux-m68k.org>

Looks good. Applied to the m68knommu git tree.
(I'll push in the 3.1 merge window).

Thanks
Greg


> ---
> Will build on top of this for m68k genirq.
>
>   arch/m68k/kernel/irq.c           |   10 ++++++++++
>   arch/m68k/platform/68328/entry.S |    2 +-
>   arch/m68k/platform/68328/ints.c  |    3 ---
>   arch/m68k/platform/68360/entry.S |    2 +-
>   arch/m68k/platform/68360/ints.c  |    3 ---
>   5 files changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/arch/m68k/kernel/irq.c b/arch/m68k/kernel/irq.c
> index 544b871..c73988c 100644
> --- a/arch/m68k/kernel/irq.c
> +++ b/arch/m68k/kernel/irq.c
> @@ -28,3 +28,13 @@ asmlinkage void do_IRQ(int irq, struct pt_regs *regs)
>
>   	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;
> +}
> diff --git a/arch/m68k/platform/68328/entry.S b/arch/m68k/platform/68328/entry.S
> index f68dce7..a6aa7b7 100644
> --- a/arch/m68k/platform/68328/entry.S
> +++ b/arch/m68k/platform/68328/entry.S
> @@ -236,7 +236,7 @@ ret_from_interrupt:
>    * Handler for uninitialized and spurious interrupts.
>    */
>   ENTRY(bad_interrupt)
> -	addql	#1,num_spurious
> +	addql	#1,irq_err_count
>   	rte
>
>   /*
> diff --git a/arch/m68k/platform/68328/ints.c b/arch/m68k/platform/68328/ints.c
> index a90288c..41753a2 100644
> --- a/arch/m68k/platform/68328/ints.c
> +++ b/arch/m68k/platform/68328/ints.c
> @@ -70,9 +70,6 @@ asmlinkage irqreturn_t inthandler7(void);
>
>   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
>    * of interrupts until later in the family.  The EC000 core does
>    * not provide the vector number on the stack, we vector everything
> diff --git a/arch/m68k/platform/68360/entry.S b/arch/m68k/platform/68360/entry.S
> index a07b14f..53b6027 100644
> --- a/arch/m68k/platform/68360/entry.S
> +++ b/arch/m68k/platform/68360/entry.S
> @@ -157,7 +157,7 @@ ret_from_interrupt:
>    * Handler for uninitialized and spurious interrupts.
>    */
>   bad_interrupt:
> -	addql	#1,num_spurious
> +	addql	#1,irq_err_count
>   	rte
>
>   /*
> diff --git a/arch/m68k/platform/68360/ints.c b/arch/m68k/platform/68360/ints.c
> index 4af0f4e..2cd5462 100644
> --- a/arch/m68k/platform/68360/ints.c
> +++ b/arch/m68k/platform/68360/ints.c
> @@ -34,9 +34,6 @@ asmlinkage void inthandler(void);
>
>   extern void *_ramvec[];
>
> -/* The number of spurious interrupts */
> -volatile unsigned int num_spurious;
> -
>   static void intc_irq_unmask(struct irq_data *d)
>   {
>   	pquicc->intr_cimr |= (1<<  d->irq);


-- 
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg at snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com



More information about the uClinux-dev mailing list