aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2006-09-25 21:54:16 -0400
committerPaul Mackerras <paulus@samba.org>2006-09-26 01:41:03 -0400
commitd86d9b8cab45adf64e2ea8fe975bec3282b5de81 (patch)
tree5e5f5da5139c819f3d77ab2b6a0cb1e6b339f4ea
parent022d51b1b28d25d50935c39d7968fefe34102a9f (diff)
[POWERPC] fix spin lock nesting in hvc_iseries
We had nested spinlocks using the same flags variable, but it turns out that we don't need the nested locks at all (the lock protects a static buffer that we aren't using here), so just remove the extra locks. Spotted by Alexey Dobriyan. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--drivers/char/hvc_iseries.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/char/hvc_iseries.c b/drivers/char/hvc_iseries.c
index 4747729459c7..8b6f197e5f8c 100644
--- a/drivers/char/hvc_iseries.c
+++ b/drivers/char/hvc_iseries.c
@@ -153,9 +153,7 @@ static int put_chars(uint32_t vtermno, const char *buf, int count)
153 spin_lock_irqsave(&consolelock, flags); 153 spin_lock_irqsave(&consolelock, flags);
154 154
155 if (viochar_is_console(pi) && !viopath_isactive(pi->lp)) { 155 if (viochar_is_console(pi) && !viopath_isactive(pi->lp)) {
156 spin_lock_irqsave(&consoleloglock, flags);
157 HvCall_writeLogBuffer(buf, count); 156 HvCall_writeLogBuffer(buf, count);
158 spin_unlock_irqrestore(&consoleloglock, flags);
159 sent = count; 157 sent = count;
160 goto done; 158 goto done;
161 } 159 }
@@ -171,11 +169,8 @@ static int put_chars(uint32_t vtermno, const char *buf, int count)
171 169
172 len = (count > VIOCHAR_MAX_DATA) ? VIOCHAR_MAX_DATA : count; 170 len = (count > VIOCHAR_MAX_DATA) ? VIOCHAR_MAX_DATA : count;
173 171
174 if (viochar_is_console(pi)) { 172 if (viochar_is_console(pi))
175 spin_lock_irqsave(&consoleloglock, flags);
176 HvCall_writeLogBuffer(buf, len); 173 HvCall_writeLogBuffer(buf, len);
177 spin_unlock_irqrestore(&consoleloglock, flags);
178 }
179 174
180 init_data_event(viochar, pi->lp); 175 init_data_event(viochar, pi->lp);
181 176