1
0
Fork 0

[PATCH] make noirqdebug/irqfixup __read_mostly, add (un)likely()

Signed-off-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
hifive-unleashed-5.1
Andreas Mohr 2006-06-23 02:05:32 -07:00 committed by Linus Torvalds
parent e6022603b9
commit 83d4e6e7fb
2 changed files with 8 additions and 8 deletions

View File

@ -52,7 +52,7 @@
*/
#define MAX_IRQ_CNT 100000
static int noirqdebug;
static int noirqdebug __read_mostly;
static volatile unsigned long irq_err_count;
static DEFINE_SPINLOCK(irq_controller_lock);
static LIST_HEAD(irq_pending);
@ -81,7 +81,7 @@ irqreturn_t no_action(int irq, void *dev_id, struct pt_regs *regs)
void do_bad_IRQ(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
{
irq_err_count += 1;
irq_err_count++;
printk(KERN_ERR "IRQ: spurious interrupt %d\n", irq);
}

View File

@ -11,7 +11,7 @@
#include <linux/kallsyms.h>
#include <linux/interrupt.h>
static int irqfixup;
static int irqfixup __read_mostly;
/*
* Recovery handler for misrouted interrupts.
@ -136,9 +136,9 @@ static void report_bad_irq(unsigned int irq, irq_desc_t *desc, irqreturn_t actio
void note_interrupt(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret,
struct pt_regs *regs)
{
if (action_ret != IRQ_HANDLED) {
if (unlikely(action_ret != IRQ_HANDLED)) {
desc->irqs_unhandled++;
if (action_ret != IRQ_NONE)
if (unlikely(action_ret != IRQ_NONE))
report_bad_irq(irq, desc, action_ret);
}
@ -152,11 +152,11 @@ void note_interrupt(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret,
}
desc->irq_count++;
if (desc->irq_count < 100000)
if (likely(desc->irq_count < 100000))
return;
desc->irq_count = 0;
if (desc->irqs_unhandled > 99900) {
if (unlikely(desc->irqs_unhandled > 99900)) {
/*
* The interrupt is stuck
*/
@ -171,7 +171,7 @@ void note_interrupt(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret,
desc->irqs_unhandled = 0;
}
int noirqdebug;
int noirqdebug __read_mostly;
int __init noirqdebug_setup(char *str)
{