diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2010-02-17 21:22:31 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-02-18 22:52:33 -0500 |
commit | b8f87782e82709d613c5d2a165d1443478e57c00 (patch) | |
tree | 9ff3f31aa61f9405b1e8826c17b1be4f4f611a5a | |
parent | 3eb93c558a9e3651f86a88565e59488e936ff346 (diff) |
powerpc: Convert die.lock to raw_spinlock
die.lock needs to be a real spinlock in RT. Convert it to
raw_spinlock.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/kernel/traps.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 987437e04e61..696626a2e835 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -102,11 +102,11 @@ static inline void pmac_backlight_unblank(void) { } | |||
102 | int die(const char *str, struct pt_regs *regs, long err) | 102 | int die(const char *str, struct pt_regs *regs, long err) |
103 | { | 103 | { |
104 | static struct { | 104 | static struct { |
105 | spinlock_t lock; | 105 | raw_spinlock_t lock; |
106 | u32 lock_owner; | 106 | u32 lock_owner; |
107 | int lock_owner_depth; | 107 | int lock_owner_depth; |
108 | } die = { | 108 | } die = { |
109 | .lock = __SPIN_LOCK_UNLOCKED(die.lock), | 109 | .lock = __RAW_SPIN_LOCK_UNLOCKED(die.lock), |
110 | .lock_owner = -1, | 110 | .lock_owner = -1, |
111 | .lock_owner_depth = 0 | 111 | .lock_owner_depth = 0 |
112 | }; | 112 | }; |
@@ -120,7 +120,7 @@ int die(const char *str, struct pt_regs *regs, long err) | |||
120 | 120 | ||
121 | if (die.lock_owner != raw_smp_processor_id()) { | 121 | if (die.lock_owner != raw_smp_processor_id()) { |
122 | console_verbose(); | 122 | console_verbose(); |
123 | spin_lock_irqsave(&die.lock, flags); | 123 | raw_spin_lock_irqsave(&die.lock, flags); |
124 | die.lock_owner = smp_processor_id(); | 124 | die.lock_owner = smp_processor_id(); |
125 | die.lock_owner_depth = 0; | 125 | die.lock_owner_depth = 0; |
126 | bust_spinlocks(1); | 126 | bust_spinlocks(1); |
@@ -160,7 +160,7 @@ int die(const char *str, struct pt_regs *regs, long err) | |||
160 | bust_spinlocks(0); | 160 | bust_spinlocks(0); |
161 | die.lock_owner = -1; | 161 | die.lock_owner = -1; |
162 | add_taint(TAINT_DIE); | 162 | add_taint(TAINT_DIE); |
163 | spin_unlock_irqrestore(&die.lock, flags); | 163 | raw_spin_unlock_irqrestore(&die.lock, flags); |
164 | 164 | ||
165 | if (kexec_should_crash(current) || | 165 | if (kexec_should_crash(current) || |
166 | kexec_sr_activated(smp_processor_id())) | 166 | kexec_sr_activated(smp_processor_id())) |