diff options
Diffstat (limited to 'target/linux/ramips/patches-3.10/0201-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch')
-rw-r--r-- | target/linux/ramips/patches-3.10/0201-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/target/linux/ramips/patches-3.10/0201-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch b/target/linux/ramips/patches-3.10/0201-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch deleted file mode 100644 index f1898ba..0000000 --- a/target/linux/ramips/patches-3.10/0201-MIPS-GIC-Fix-gic_set_affinity-infinite-loop.patch +++ /dev/null @@ -1,44 +0,0 @@ -From cde59bef2f155fc38413e470ff0e4672623cdbec Mon Sep 17 00:00:00 2001 -From: Tony Wu <tung7970@gmail.com> -Date: Fri, 21 Jun 2013 10:13:08 +0000 -Subject: [PATCH 201/215] MIPS: GIC: Fix gic_set_affinity infinite loop - -There is an infinite loop in gic_set_affinity. When irq_set_affinity -gets called on gic controller, it blocks forever. - -Signed-off-by: Tony Wu <tung7970@gmail.com> -Cc: Steven J. Hill <Steven.Hill@imgtec.com> -Cc: linux-mips@linux-mips.org -Patchwork: https://patchwork.linux-mips.org/patch/5537/ -Signed-off-by: Ralf Baechle <ralf@linux-mips.org> -(cherry picked from commit c214c03512b67e56dea3f4471705f8caae49553a) ---- - arch/mips/kernel/irq-gic.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - ---- a/arch/mips/kernel/irq-gic.c -+++ b/arch/mips/kernel/irq-gic.c -@@ -219,16 +219,15 @@ static int gic_set_affinity(struct irq_d - - /* Assumption : cpumask refers to a single CPU */ - spin_lock_irqsave(&gic_lock, flags); -- for (;;) { -- /* Re-route this IRQ */ -- GIC_SH_MAP_TO_VPE_SMASK(irq, first_cpu(tmp)); - -- /* Update the pcpu_masks */ -- for (i = 0; i < NR_CPUS; i++) -- clear_bit(irq, pcpu_masks[i].pcpu_mask); -- set_bit(irq, pcpu_masks[first_cpu(tmp)].pcpu_mask); -+ /* Re-route this IRQ */ -+ GIC_SH_MAP_TO_VPE_SMASK(irq, first_cpu(tmp)); -+ -+ /* Update the pcpu_masks */ -+ for (i = 0; i < NR_CPUS; i++) -+ clear_bit(irq, pcpu_masks[i].pcpu_mask); -+ set_bit(irq, pcpu_masks[first_cpu(tmp)].pcpu_mask); - -- } - cpumask_copy(d->affinity, cpumask); - spin_unlock_irqrestore(&gic_lock, flags); - |