MIPS: Mark cascade and low level interrupts IRQF_NO_THREAD

Mark interrupts with no_action handler, cascade interrupts, low level
interrupts (bus error, halt ..) with IRQF_NO_THREAD to exclude them
from forced threading.

Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mips@linux-mips.org
Cc: Wu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Wu Zhangjin 2011-07-23 12:41:24 +00:00 committed by Ralf Baechle
parent 4d85f6afa4
commit 5a4a4ad851
12 changed files with 24 additions and 10 deletions

View file

@ -98,7 +98,8 @@ static struct irq_chip ar7_sec_irq_type = {
static struct irqaction ar7_cascade_action = { static struct irqaction ar7_cascade_action = {
.handler = no_action, .handler = no_action,
.name = "AR7 cascade interrupt" .name = "AR7 cascade interrupt",
.flags = IRQF_NO_THREAD,
}; };
static void __init ar7_irq_init(int base) static void __init ar7_irq_init(int base)

View file

@ -222,6 +222,7 @@ static struct irq_chip bcm63xx_external_irq_chip = {
static struct irqaction cpu_ip2_cascade_action = { static struct irqaction cpu_ip2_cascade_action = {
.handler = no_action, .handler = no_action,
.name = "cascade_ip2", .name = "cascade_ip2",
.flags = IRQF_NO_THREAD,
}; };
void __init arch_init_irq(void) void __init arch_init_irq(void)

View file

@ -48,6 +48,7 @@ asmlinkage void plat_irq_dispatch(void)
static struct irqaction cascade = { static struct irqaction cascade = {
.handler = no_action, .handler = no_action,
.name = "cascade", .name = "cascade",
.flags = IRQF_NO_THREAD,
}; };
void __init arch_init_irq(void) void __init arch_init_irq(void)

View file

@ -101,20 +101,24 @@ int cpu_fpu_mask = DEC_CPU_IRQ_MASK(DEC_CPU_INR_FPU);
static struct irqaction ioirq = { static struct irqaction ioirq = {
.handler = no_action, .handler = no_action,
.name = "cascade", .name = "cascade",
.flags = IRQF_NO_THREAD,
}; };
static struct irqaction fpuirq = { static struct irqaction fpuirq = {
.handler = no_action, .handler = no_action,
.name = "fpu", .name = "fpu",
.flags = IRQF_NO_THREAD,
}; };
static struct irqaction busirq = { static struct irqaction busirq = {
.flags = IRQF_DISABLED, .flags = IRQF_DISABLED,
.name = "bus error", .name = "bus error",
.flags = IRQF_NO_THREAD,
}; };
static struct irqaction haltirq = { static struct irqaction haltirq = {
.handler = dec_intr_halt, .handler = dec_intr_halt,
.name = "halt", .name = "halt",
.flags = IRQF_NO_THREAD,
}; };

View file

@ -169,7 +169,7 @@ void emma2rh_gpio_irq_init(void)
static struct irqaction irq_cascade = { static struct irqaction irq_cascade = {
.handler = no_action, .handler = no_action,
.flags = 0, .flags = IRQF_NO_THREAD,
.name = "cascade", .name = "cascade",
.dev_id = NULL, .dev_id = NULL,
.next = NULL, .next = NULL,

View file

@ -105,6 +105,7 @@ asmlinkage void plat_irq_dispatch(void)
static struct irqaction cascade = { static struct irqaction cascade = {
.handler = no_action, .handler = no_action,
.name = "cascade", .name = "cascade",
.flags = IRQF_NO_THREAD,
}; };
void __init arch_init_irq(void) void __init arch_init_irq(void)

View file

@ -350,12 +350,14 @@ unsigned int plat_ipi_resched_int_xlate(unsigned int cpu)
static struct irqaction i8259irq = { static struct irqaction i8259irq = {
.handler = no_action, .handler = no_action,
.name = "XT-PIC cascade" .name = "XT-PIC cascade",
.flags = IRQF_NO_THREAD,
}; };
static struct irqaction corehi_irqaction = { static struct irqaction corehi_irqaction = {
.handler = no_action, .handler = no_action,
.name = "CoreHi" .name = "CoreHi",
.flags = IRQF_NO_THREAD,
}; };
static msc_irqmap_t __initdata msc_irqmap[] = { static msc_irqmap_t __initdata msc_irqmap[] = {

View file

@ -109,11 +109,13 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
static struct irqaction cic_cascade_msp = { static struct irqaction cic_cascade_msp = {
.handler = no_action, .handler = no_action,
.name = "MSP CIC cascade" .name = "MSP CIC cascade"
.flags = IRQF_NO_THREAD,
}; };
static struct irqaction per_cascade_msp = { static struct irqaction per_cascade_msp = {
.handler = no_action, .handler = no_action,
.name = "MSP PER cascade" .name = "MSP PER cascade"
.flags = IRQF_NO_THREAD,
}; };
void __init arch_init_irq(void) void __init arch_init_irq(void)

View file

@ -167,7 +167,7 @@ static struct irq_chip level_irq_type = {
static struct irqaction gic_action = { static struct irqaction gic_action = {
.handler = no_action, .handler = no_action,
.flags = IRQF_DISABLED, .flags = IRQF_DISABLED | IRQF_NO_THREAD,
.name = "GIC", .name = "GIC",
}; };

View file

@ -155,32 +155,32 @@ static void __irq_entry indy_buserror_irq(void)
static struct irqaction local0_cascade = { static struct irqaction local0_cascade = {
.handler = no_action, .handler = no_action,
.flags = IRQF_DISABLED, .flags = IRQF_DISABLED | IRQF_NO_THREAD,
.name = "local0 cascade", .name = "local0 cascade",
}; };
static struct irqaction local1_cascade = { static struct irqaction local1_cascade = {
.handler = no_action, .handler = no_action,
.flags = IRQF_DISABLED, .flags = IRQF_DISABLED | IRQF_NO_THREAD,
.name = "local1 cascade", .name = "local1 cascade",
}; };
static struct irqaction buserr = { static struct irqaction buserr = {
.handler = no_action, .handler = no_action,
.flags = IRQF_DISABLED, .flags = IRQF_DISABLED | IRQF_NO_THREAD,
.name = "Bus Error", .name = "Bus Error",
}; };
static struct irqaction map0_cascade = { static struct irqaction map0_cascade = {
.handler = no_action, .handler = no_action,
.flags = IRQF_DISABLED, .flags = IRQF_DISABLED | IRQF_NO_THREAD,
.name = "mapable0 cascade", .name = "mapable0 cascade",
}; };
#ifdef USE_LIO3_IRQ #ifdef USE_LIO3_IRQ
static struct irqaction map1_cascade = { static struct irqaction map1_cascade = {
.handler = no_action, .handler = no_action,
.flags = IRQF_DISABLED, .flags = IRQF_DISABLED | IRQF_NO_THREAD,
.name = "mapable1 cascade", .name = "mapable1 cascade",
}; };
#define SGI_INTERRUPTS SGINT_END #define SGI_INTERRUPTS SGINT_END

View file

@ -359,6 +359,7 @@ void sni_rm200_init_8259A(void)
static struct irqaction sni_rm200_irq2 = { static struct irqaction sni_rm200_irq2 = {
.handler = no_action, .handler = no_action,
.name = "cascade", .name = "cascade",
.flags = IRQF_NO_THREAD,
}; };
static struct resource sni_rm200_pic1_resource = { static struct resource sni_rm200_pic1_resource = {

View file

@ -34,6 +34,7 @@ static irq_cascade_t irq_cascade[NR_IRQS] __cacheline_aligned;
static struct irqaction cascade_irqaction = { static struct irqaction cascade_irqaction = {
.handler = no_action, .handler = no_action,
.name = "cascade", .name = "cascade",
.flags = IRQF_NO_THREAD,
}; };
int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int)) int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int))