diff options
Diffstat (limited to 'drivers/tty/vt/vt_ioctl.c')
| -rw-r--r-- | drivers/tty/vt/vt_ioctl.c | 25 | 
1 files changed, 5 insertions, 20 deletions
diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c index ede2ef18d2f..64618547be1 100644 --- a/drivers/tty/vt/vt_ioctl.c +++ b/drivers/tty/vt/vt_ioctl.c @@ -910,7 +910,9 @@ int vt_ioctl(struct tty_struct *tty,  		ret = con_font_op(vc_cons[fg_console].d, &op);  		if (ret)  			break; +		console_lock();  		con_set_default_unimap(vc_cons[fg_console].d); +		console_unlock();  		break;  		}  #endif @@ -934,33 +936,23 @@ int vt_ioctl(struct tty_struct *tty,  	case PIO_SCRNMAP:  		if (!perm)  			ret = -EPERM; -		else { -			tty_lock(); +		else  			ret = con_set_trans_old(up); -			tty_unlock(); -		}  		break;  	case GIO_SCRNMAP: -		tty_lock();  		ret = con_get_trans_old(up); -		tty_unlock();  		break;  	case PIO_UNISCRNMAP:  		if (!perm)  			ret = -EPERM; -		else { -			tty_lock(); +		else  			ret = con_set_trans_new(up); -			tty_unlock(); -		}  		break;  	case GIO_UNISCRNMAP: -		tty_lock();  		ret = con_get_trans_new(up); -		tty_unlock();  		break;  	case PIO_UNIMAPCLR: @@ -970,19 +962,14 @@ int vt_ioctl(struct tty_struct *tty,  		ret = copy_from_user(&ui, up, sizeof(struct unimapinit));  		if (ret)  			ret = -EFAULT; -		else { -			tty_lock(); +		else  			con_clear_unimap(vc, &ui); -			tty_unlock(); -		}  		break;  	      }  	case PIO_UNIMAP:  	case GIO_UNIMAP: -		tty_lock();  		ret = do_unimap_ioctl(cmd, up, perm, vc); -		tty_unlock();  		break;  	case VT_LOCKSWITCH: @@ -1196,9 +1183,7 @@ long vt_compat_ioctl(struct tty_struct *tty,  	case PIO_UNIMAP:  	case GIO_UNIMAP: -		tty_lock();  		ret = compat_unimap_ioctl(cmd, up, perm, vc); -		tty_unlock();  		break;  	/*  |