[PATCH] Fix KDFONTOP 32bit compatibility layer

From: Samuel Thibault
Date: Sat Jan 28 2012 - 18:29:37 EST


KDFONTOP(GET) currently fails with EIO when being run in a 32bit
userland with a 64bit kernel if the font width is not 8. This is because
the compatibility layer introduced by e9216651 forces the addition of
the KD_FONT_FLAG_OLD flag, which makes con_font_get return EIO in such
case. This flag should *not* be set for KDFONTOP, since it's actually
the whole point of this flag (see comment in con_font_set for instance).

Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>

diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c
index 5e096f4..65447c5 100644
--- a/drivers/tty/vt/vt_ioctl.c
+++ b/drivers/tty/vt/vt_ioctl.c
@@ -1463,7 +1463,6 @@ compat_kdfontop_ioctl(struct compat_console_font_op __user *fontop,
if (!perm && op->op != KD_FONT_OP_GET)
return -EPERM;
op->data = compat_ptr(((struct compat_console_font_op *)op)->data);
- op->flags |= KD_FONT_FLAG_OLD;
i = con_font_op(vc, op);
if (i)
return i;
--
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/