diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2016-09-23 14:57:16 +0200 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-09-23 14:57:16 +0200 |
commit | 0565f49cfe937640c2347f6d7f40ad2f4e4f088b (patch) | |
tree | 6067447df39c37946bc2de3ee004f45957bf123e /drivers/irqchip/irq-gic.c | |
parent | Merge branch 'gpio-irq-validmask' into devel (diff) | |
parent | Linux 4.8-rc6 (diff) | |
download | linux-dev-0565f49cfe937640c2347f6d7f40ad2f4e4f088b.tar.xz linux-dev-0565f49cfe937640c2347f6d7f40ad2f4e4f088b.zip |
Merge tag 'v4.8-rc6' into devel
Linux 4.8-rc6
Diffstat (limited to 'drivers/irqchip/irq-gic.c')
-rw-r--r-- | drivers/irqchip/irq-gic.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c index c2cab572c511..390fac59c6bc 100644 --- a/drivers/irqchip/irq-gic.c +++ b/drivers/irqchip/irq-gic.c @@ -769,6 +769,13 @@ static void gic_raise_softirq(const struct cpumask *mask, unsigned int irq) int cpu; unsigned long flags, map = 0; + if (unlikely(nr_cpu_ids == 1)) { + /* Only one CPU? let's do a self-IPI... */ + writel_relaxed(2 << 24 | irq, + gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT); + return; + } + raw_spin_lock_irqsave(&irq_controller_lock, flags); /* Convert our logical CPU mask into a physical one. */ |