diff options
| author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-02-03 18:37:15 -0500 |
|---|---|---|
| committer | Luis Henriques <luis.henriques@canonical.com> | 2012-03-08 07:23:25 -0500 |
| commit | fdc32c90d0f5cc47f69ced11dc2e4cae5207ac92 (patch) | |
| tree | cfcddc8518b8df1f42894cbe51d1e6fa57b8cb3a /drivers/tty/vt | |
| parent | 08d88c14ea5881f67a3fe9bc92340ab796030fb4 (diff) | |
drivers/tty/vt/vt_ioctl.c: fix KDFONTOP 32bit compatibility layer
BugLink: http://bugs.launchpad.net/bugs/931719
commit cbcb8346054073d000ecac324763372d6abd44ac upstream.
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 of the setting 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@ens-lyon.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Cc: Arthur Taylor <art@ified.ca>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Diffstat (limited to 'drivers/tty/vt')
| -rw-r--r-- | drivers/tty/vt/vt_ioctl.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c index cd020a2ee86..02192e938ff 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, | |||
| 1463 | if (!perm && op->op != KD_FONT_OP_GET) | 1463 | if (!perm && op->op != KD_FONT_OP_GET) |
| 1464 | return -EPERM; | 1464 | return -EPERM; |
| 1465 | op->data = compat_ptr(((struct compat_console_font_op *)op)->data); | 1465 | op->data = compat_ptr(((struct compat_console_font_op *)op)->data); |
| 1466 | op->flags |= KD_FONT_FLAG_OLD; | ||
| 1467 | i = con_font_op(vc, op); | 1466 | i = con_font_op(vc, op); |
| 1468 | if (i) | 1467 | if (i) |
| 1469 | return i; | 1468 | return i; |
