diff options
Diffstat (limited to 'kernel/irq/irqdesc.c')
| -rw-r--r-- | kernel/irq/irqdesc.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index 82afb7ed369f..f2edcf85780d 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c @@ -27,7 +27,7 @@ static struct lock_class_key irq_desc_lock_class;  #if defined(CONFIG_SMP)  static int __init irq_affinity_setup(char *str)  { -	zalloc_cpumask_var(&irq_default_affinity, GFP_NOWAIT); +	alloc_bootmem_cpumask_var(&irq_default_affinity);  	cpulist_parse(str, irq_default_affinity);  	/*  	 * Set at least the boot cpu. We don't want to end up with @@ -40,10 +40,8 @@ __setup("irqaffinity=", irq_affinity_setup);  static void __init init_irq_default_affinity(void)  { -#ifdef CONFIG_CPUMASK_OFFSTACK -	if (!irq_default_affinity) +	if (!cpumask_available(irq_default_affinity))  		zalloc_cpumask_var(&irq_default_affinity, GFP_NOWAIT); -#endif  	if (cpumask_empty(irq_default_affinity))  		cpumask_setall(irq_default_affinity);  } @@ -448,7 +446,7 @@ static int alloc_descs(unsigned int start, unsigned int cnt, int node,  		}  	} -	flags = affinity ? IRQD_AFFINITY_MANAGED : 0; +	flags = affinity ? IRQD_AFFINITY_MANAGED | IRQD_MANAGED_SHUTDOWN : 0;  	mask = NULL;  	for (i = 0; i < cnt; i++) { @@ -462,6 +460,7 @@ static int alloc_descs(unsigned int start, unsigned int cnt, int node,  			goto err;  		irq_insert_desc(start + i, desc);  		irq_sysfs_add(start + i, desc); +		irq_add_debugfs_entry(start + i, desc);  	}  	bitmap_set(allocated_irqs, start, cnt);  	return start;  | 
