Skip to content

Commit

Permalink
vc: Locking clean up
Browse files Browse the repository at this point in the history
The virtual console layer uses the BKL for various things that don't really
need it. Clean them out.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Alan Cox authored and Greg Kroah-Hartman committed Aug 10, 2010
1 parent d87d9b7 commit e33ac1c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
4 changes: 4 additions & 0 deletions drivers/char/selection.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <linux/selection.h>
#include <linux/tiocl.h>
#include <linux/console.h>
#include <linux/smp_lock.h>

/* Don't take this from <ctype.h>: 011-015 on the screen aren't spaces */
#define isspace(c) ((c) == ' ')
Expand Down Expand Up @@ -312,6 +313,8 @@ int paste_selection(struct tty_struct *tty)
struct tty_ldisc *ld;
DECLARE_WAITQUEUE(wait, current);

lock_kernel();

acquire_console_sem();
poke_blanked_console();
release_console_sem();
Expand All @@ -335,5 +338,6 @@ int paste_selection(struct tty_struct *tty)
__set_current_state(TASK_RUNNING);

tty_ldisc_deref(ld);
unlock_kernel();
return 0;
}
7 changes: 4 additions & 3 deletions drivers/char/vt.c
Original file line number Diff line number Diff line change
Expand Up @@ -287,8 +287,12 @@ static inline unsigned short *screenpos(struct vc_data *vc, int offset, int view
return p;
}

/* Called from the keyboard irq path.. */
static inline void scrolldelta(int lines)
{
/* FIXME */
/* scrolldelta needs some kind of consistency lock, but the BKL was
and still is not protecting versus the scheduled back end */
scrollback_delta += lines;
schedule_console_callback();
}
Expand Down Expand Up @@ -2616,8 +2620,6 @@ int tioclinux(struct tty_struct *tty, unsigned long arg)
return -EFAULT;
ret = 0;

lock_kernel();

switch (type)
{
case TIOCL_SETSEL:
Expand Down Expand Up @@ -2692,7 +2694,6 @@ int tioclinux(struct tty_struct *tty, unsigned long arg)
ret = -EINVAL;
break;
}
unlock_kernel();
return ret;
}

Expand Down

0 comments on commit e33ac1c

Please sign in to comment.