diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2006-09-25 21:54:16 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-09-26 01:41:03 -0400 |
commit | d86d9b8cab45adf64e2ea8fe975bec3282b5de81 (patch) | |
tree | 5e5f5da5139c819f3d77ab2b6a0cb1e6b339f4ea /drivers/char | |
parent | 022d51b1b28d25d50935c39d7968fefe34102a9f (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>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/hvc_iseries.c | 7 |
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 | ||