Skip to content

Commit

Permalink
[POWERPC] fix spin lock nesting in hvc_iseries
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stephen Rothwell authored and Paul Mackerras committed Sep 26, 2006
1 parent 022d51b commit d86d9b8
Showing 1 changed file with 1 addition and 6 deletions.
7 changes: 1 addition & 6 deletions drivers/char/hvc_iseries.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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);

Expand Down

0 comments on commit d86d9b8

Please sign in to comment.