diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2006-09-26 11:54:16 +1000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-09-26 15:41:03 +1000 |
commit | d86d9b8cab45adf64e2ea8fe975bec3282b5de81 (patch) | |
tree | 5e5f5da5139c819f3d77ab2b6a0cb1e6b339f4ea /drivers/char/hvc_iseries.c | |
parent | 022d51b1b28d25d50935c39d7968fefe34102a9f (diff) | |
download | op-kernel-dev-d86d9b8cab45adf64e2ea8fe975bec3282b5de81.zip op-kernel-dev-d86d9b8cab45adf64e2ea8fe975bec3282b5de81.tar.gz |
[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/hvc_iseries.c')
-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 4747729..8b6f197 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) spin_lock_irqsave(&consolelock, flags); if (viochar_is_console(pi) && !viopath_isactive(pi->lp)) { - spin_lock_irqsave(&consoleloglock, flags); HvCall_writeLogBuffer(buf, count); - spin_unlock_irqrestore(&consoleloglock, flags); sent = count; goto done; } @@ -171,11 +169,8 @@ static int put_chars(uint32_t vtermno, const char *buf, int count) len = (count > VIOCHAR_MAX_DATA) ? VIOCHAR_MAX_DATA : count; - if (viochar_is_console(pi)) { - spin_lock_irqsave(&consoleloglock, flags); + if (viochar_is_console(pi)) HvCall_writeLogBuffer(buf, len); - spin_unlock_irqrestore(&consoleloglock, flags); - } init_data_event(viochar, pi->lp); |