Re: [PATCH] vt: Add K_OFF return value to vt_ioctl KDGKBMODE

From: Andrew Morton
Date: Thu Apr 07 2011 - 19:13:24 EST


On Thu, 17 Mar 2011 01:47:32 -0700
Arthur Taylor <art@xxxxxxxx> wrote:

>
> After adding support for K_OFF in KDSKBMODE, it was forgotten to
> add support for returning it in KDGKBMODE.
>
> Signed-off-by: Arthur Taylor <art@xxxxxxxx>
> ---
> drivers/tty/vt/vt_ioctl.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c
> index 937d172..e71477a 100644
> --- a/drivers/tty/vt/vt_ioctl.c
> +++ b/drivers/tty/vt/vt_ioctl.c
> @@ -701,6 +701,7 @@ int vt_ioctl(struct tty_struct *tty,
> uival = ((kbd->kbdmode == VC_RAW) ? K_RAW :
> (kbd->kbdmode == VC_MEDIUMRAW) ? K_MEDIUMRAW :
> (kbd->kbdmode == VC_UNICODE) ? K_UNICODE :
> + (kbd->kbdmode == VC_OFF) ? K_OFF :
> K_XLATE);

OK. Thanks. But. If you come across such monstrosities, please do not
permit them to live.

--- a/drivers/tty/vt/vt_ioctl.c~vt-add-k_off-return-value-to-vt_ioctl-kdgkbmode-fix
+++ a/drivers/tty/vt/vt_ioctl.c
@@ -698,11 +698,23 @@ int vt_ioctl(struct tty_struct *tty,
break;

case KDGKBMODE:
- uival = ((kbd->kbdmode == VC_RAW) ? K_RAW :
- (kbd->kbdmode == VC_MEDIUMRAW) ? K_MEDIUMRAW :
- (kbd->kbdmode == VC_UNICODE) ? K_UNICODE :
- (kbd->kbdmode == VC_OFF) ? K_OFF :
- K_XLATE);
+ switch (kbd->kbdmode) {
+ case VC_RAW:
+ uival = K_RAW;
+ break;
+ case VC_MEDIUMRAW:
+ uival = K_MEDIUMRAW;
+ break;
+ case VC_UNICODE:
+ uival = K_UNICODE;
+ break;
+ case VC_OFF:
+ uival = K_OFF;
+ break;
+ default:
+ uival = K_XLATE;
+ break;
+ }
goto setint;

/* this could be folded into KDSKBMODE, but for compatibility
_

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/