git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pull bugzilla-5452 into release branch
[pandora-kernel.git]
/
drivers
/
char
/
vt.c
diff --git
a/drivers/char/vt.c
b/drivers/char/vt.c
index
0900d1d
..
6c94879
100644
(file)
--- a/
drivers/char/vt.c
+++ b/
drivers/char/vt.c
@@
-2328,6
+2328,10
@@
int tioclinux(struct tty_struct *tty, unsigned long arg)
case TIOCL_SETVESABLANK:
set_vesa_blanking(p);
break;
case TIOCL_SETVESABLANK:
set_vesa_blanking(p);
break;
+ case TIOCL_GETKMSGREDIRECT:
+ data = kmsg_redirect;
+ ret = __put_user(data, p);
+ break;
case TIOCL_SETKMSGREDIRECT:
if (!capable(CAP_SYS_ADMIN)) {
ret = -EPERM;
case TIOCL_SETKMSGREDIRECT:
if (!capable(CAP_SYS_ADMIN)) {
ret = -EPERM;
@@
-2489,7
+2493,7
@@
static int con_open(struct tty_struct *tty, struct file *filp)
}
/*
}
/*
- * We take tty_
sem
in here to prevent another thread from coming in via init_dev
+ * We take tty_
mutex
in here to prevent another thread from coming in via init_dev
* and taking a ref against the tty while we're in the process of forgetting
* about it and cleaning things up.
*
* and taking a ref against the tty while we're in the process of forgetting
* about it and cleaning things up.
*
@@
-2497,7
+2501,7
@@
static int con_open(struct tty_struct *tty, struct file *filp)
*/
static void con_close(struct tty_struct *tty, struct file *filp)
{
*/
static void con_close(struct tty_struct *tty, struct file *filp)
{
-
down(&tty_sem
);
+
mutex_lock(&tty_mutex
);
acquire_console_sem();
if (tty && tty->count == 1) {
struct vc_data *vc = tty->driver_data;
acquire_console_sem();
if (tty && tty->count == 1) {
struct vc_data *vc = tty->driver_data;
@@
-2507,15
+2511,15
@@
static void con_close(struct tty_struct *tty, struct file *filp)
tty->driver_data = NULL;
release_console_sem();
vcs_remove_devfs(tty);
tty->driver_data = NULL;
release_console_sem();
vcs_remove_devfs(tty);
-
up(&tty_sem
);
+
mutex_unlock(&tty_mutex
);
/*
/*
- * tty_
sem
is released, but we still hold BKL, so there is
+ * tty_
mutex
is released, but we still hold BKL, so there is
* still exclusion against init_dev()
*/
return;
}
release_console_sem();
* still exclusion against init_dev()
*/
return;
}
release_console_sem();
-
up(&tty_sem
);
+
mutex_unlock(&tty_mutex
);
}
static void vc_init(struct vc_data *vc, unsigned int rows,
}
static void vc_init(struct vc_data *vc, unsigned int rows,
@@
-2869,9
+2873,9
@@
void unblank_screen(void)
}
/*
}
/*
- * We defer the timer blanking to work queue so it can take the console
semaphore
+ * We defer the timer blanking to work queue so it can take the console
mutex
* (console operations can still happen at irq time, but only from printk which
* (console operations can still happen at irq time, but only from printk which
- * has the console
semaphore
. Not perfect yet, but better than no locking
+ * has the console
mutex
. Not perfect yet, but better than no locking
*/
static void blank_screen_t(unsigned long dummy)
{
*/
static void blank_screen_t(unsigned long dummy)
{