uterm: vt: set K_RAW before trying K_OFF
K_OFF is not available on older kernels and it is currently discussed whether it should be replaced on newer kernels. Therefore, set K_RAW before trying K_OFF and then ignore errors if K_OFF cannot be set. Reported-by: Ran Benita <ran234@gmail.com> Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
parent
fddd1f6fb4
commit
9bfd8c4f86
@ -370,13 +370,17 @@ static int real_open(struct uterm_vt *vt, const char *vt_name)
|
||||
vt->real_kbmode = K_UNICODE;
|
||||
}
|
||||
|
||||
ret = ioctl(vt->real_fd, KDSKBMODE, K_OFF);
|
||||
ret = ioctl(vt->real_fd, KDSKBMODE, K_RAW);
|
||||
if (ret) {
|
||||
log_error("cannot set VT KBMODE to K_OFF (%d): %m", errno);
|
||||
log_error("cannot set VT KBMODE to K_RAW (%d): %m", errno);
|
||||
ret = -EFAULT;
|
||||
goto err_setmode;
|
||||
}
|
||||
|
||||
ret = ioctl(vt->real_fd, KDSKBMODE, K_OFF);
|
||||
if (ret)
|
||||
log_warning("cannot set VT KBMODE to K_OFF (%d): %m", errno);
|
||||
|
||||
if (vts.v_active == vt->real_num) {
|
||||
ret = ev_eloop_register_idle_cb(vt->vtm->eloop, real_delayed,
|
||||
vt);
|
||||
|
Loading…
x
Reference in New Issue
Block a user