summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch
new file mode 100644
index 00000000..4531752f
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch
@@ -0,0 +1,58 @@
1From fc9002e18099fd51f0f120cebc4078db2a221e26 Mon Sep 17 00:00:00 2001
2From: Cliff Wickman <cpw@sgi.com>
3Date: Wed, 18 Jan 2012 09:40:47 -0600
4Subject: [PATCH 23/90] x86/uv: Fix uninitialized spinlocks
5
6commit d2ebc71d472020bc30e29afe8c4d2a85a5b41f56 upstream.
7
8Initialize two spinlocks in tlb_uv.c and also properly define/initialize
9the uv_irq_lock.
10
11The lack of explicit initialization seems to be functionally
12harmless, but it is diagnosed when these are turned on:
13
14 CONFIG_DEBUG_SPINLOCK=y
15 CONFIG_DEBUG_MUTEXES=y
16 CONFIG_DEBUG_LOCK_ALLOC=y
17 CONFIG_LOCKDEP=y
18
19Signed-off-by: Cliff Wickman <cpw@sgi.com>
20Cc: Dimitri Sivanich <sivanich@sgi.com>
21Link: http://lkml.kernel.org/r/E1RnXd1-0003wU-PM@eag09.americas.sgi.com
22[ Added the uv_irq_lock initialization fix by Dimitri Sivanich ]
23Signed-off-by: Ingo Molnar <mingo@elte.hu>
24Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
25---
26 arch/x86/platform/uv/tlb_uv.c | 2 ++
27 arch/x86/platform/uv/uv_irq.c | 2 +-
28 2 files changed, 3 insertions(+), 1 deletions(-)
29
30diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
31index 9010ca7..81aee5a 100644
32--- a/arch/x86/platform/uv/tlb_uv.c
33+++ b/arch/x86/platform/uv/tlb_uv.c
34@@ -1860,6 +1860,8 @@ static void __init init_per_cpu_tunables(void)
35 bcp->cong_reps = congested_reps;
36 bcp->cong_period = congested_period;
37 bcp->clocks_per_100_usec = usec_2_cycles(100);
38+ spin_lock_init(&bcp->queue_lock);
39+ spin_lock_init(&bcp->uvhub_lock);
40 }
41 }
42
43diff --git a/arch/x86/platform/uv/uv_irq.c b/arch/x86/platform/uv/uv_irq.c
44index 374a05d..f25c276 100644
45--- a/arch/x86/platform/uv/uv_irq.c
46+++ b/arch/x86/platform/uv/uv_irq.c
47@@ -25,7 +25,7 @@ struct uv_irq_2_mmr_pnode{
48 int irq;
49 };
50
51-static spinlock_t uv_irq_lock;
52+static DEFINE_SPINLOCK(uv_irq_lock);
53 static struct rb_root uv_irq_root;
54
55 static int uv_set_irq_affinity(struct irq_data *, const struct cpumask *, bool);
56--
571.7.7.4
58