diff options
author | Jon Medhurst <tixy@linaro.org> | 2016-06-02 12:50:45 +0100 |
---|---|---|
committer | Jon Medhurst <tixy@linaro.org> | 2016-06-02 12:50:45 +0100 |
commit | 8814daff33e34a7562a753917cbead937e09d389 (patch) | |
tree | 0652bc147a15e9710fab59c34a3848e373e320fb /kernel/irq/irqdesc.c | |
parent | 9390ec67652f5673ae521e45981488d37c4b29c3 (diff) | |
parent | 6733f7207b94731023ed4b539108282162e5a526 (diff) |
Merge branch 'lsk-3.18-armlt-hmp' into lsk-3.18-armlt-hmp-testlsk-3.18-armlt-20160609-hmp-testlsk-3.18-armlt-20160602-hmp-test
Conflicts:
arch/arm/common/bL_switcher.c
Diffstat (limited to 'kernel/irq/irqdesc.c')
-rw-r--r-- | kernel/irq/irqdesc.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index 99793b9b6d23..fec632d8ef98 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c @@ -24,10 +24,35 @@ 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); + cpulist_parse(str, irq_default_affinity); + /* + * Set at least the boot cpu. We don't want to end up with + * bugreports caused by random comandline masks + */ + cpumask_set_cpu(smp_processor_id(), irq_default_affinity); + return 1; +} +__setup("irqaffinity=", irq_affinity_setup); + +extern struct cpumask hmp_slow_cpu_mask; + static void __init init_irq_default_affinity(void) { - alloc_cpumask_var(&irq_default_affinity, GFP_NOWAIT); - cpumask_setall(irq_default_affinity); +#ifdef CONFIG_CPUMASK_OFFSTACK + if (!irq_default_affinity) + zalloc_cpumask_var(&irq_default_affinity, GFP_NOWAIT); +#endif +#ifdef CONFIG_SCHED_HMP + if (!cpumask_empty(&hmp_slow_cpu_mask)) { + cpumask_copy(irq_default_affinity, &hmp_slow_cpu_mask); + return; + } +#endif + if (cpumask_empty(irq_default_affinity)) + cpumask_setall(irq_default_affinity); } #else static void __init init_irq_default_affinity(void) |