diff options
author | Alan Cox <alan@linux.intel.com> | 2010-06-01 20:52:54 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-10 20:47:41 (GMT) |
commit | e33ac1c10b6baaac68d18d931e120d8b96e8c5f8 (patch) | |
tree | e39049f7e17546c3ad9dd90d739b6259826330d2 /drivers/char/selection.c | |
parent | d87d9b7d19f04b16c4406d3c0feeca10090e0ada (diff) | |
download | linux-e33ac1c10b6baaac68d18d931e120d8b96e8c5f8.tar.xz |
vc: Locking clean up
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>
Diffstat (limited to 'drivers/char/selection.c')
-rw-r--r-- | drivers/char/selection.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/char/selection.c b/drivers/char/selection.c index f97b9e8..6e79340 100644 --- a/drivers/char/selection.c +++ b/drivers/char/selection.c @@ -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) == ' ') @@ -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(); @@ -335,5 +338,6 @@ int paste_selection(struct tty_struct *tty) __set_current_state(TASK_RUNNING); tty_ldisc_deref(ld); + unlock_kernel(); return 0; } |