diff options
Diffstat (limited to 'kernel/irq/handle.c')
| -rw-r--r-- | kernel/irq/handle.c | 16 | 
1 files changed, 16 insertions, 0 deletions
| diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c index c20db0be9173..3aba8d12f328 100644 --- a/kernel/irq/handle.c +++ b/kernel/irq/handle.c @@ -39,6 +39,18 @@ void handle_bad_irq(unsigned int irq, struct irq_desc *desc)  	ack_bad_irq(irq);  } +#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_HARDIRQS) +static void __init init_irq_default_affinity(void) +{ +	alloc_bootmem_cpumask_var(&irq_default_affinity); +	cpumask_setall(irq_default_affinity); +} +#else +static void __init init_irq_default_affinity(void) +{ +} +#endif +  /*   * Linux has a controller-independent interrupt architecture.   * Every controller has a 'controller-template', that is used @@ -134,6 +146,8 @@ int __init early_irq_init(void)  	int legacy_count;  	int i; +	init_irq_default_affinity(); +  	desc = irq_desc_legacy;  	legacy_count = ARRAY_SIZE(irq_desc_legacy); @@ -219,6 +233,8 @@ int __init early_irq_init(void)  	int count;  	int i; +	init_irq_default_affinity(); +  	desc = irq_desc;  	count = ARRAY_SIZE(irq_desc); | 
