summaryrefslogtreecommitdiffstats
path: root/fs/compat.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2007-05-02 19:27:21 +0200
committerAndi Kleen <andi@basil.nowhere.org>2007-05-02 19:27:21 +0200
commita106009bdfa12b6452b724cc0718ca8e1334745d (patch)
treef42d70dff689aec8d3c2494deb4dd3a438b7f03d /fs/compat.c
parentc812d6c198c5f39a6ea22a9a12d518cd3714af16 (diff)
downloadkernel-crypto-a106009bdfa12b6452b724cc0718ca8e1334745d.tar.gz
kernel-crypto-a106009bdfa12b6452b724cc0718ca8e1334745d.tar.xz
kernel-crypto-a106009bdfa12b6452b724cc0718ca8e1334745d.zip
[PATCH] x86-64: Print type and size correctly for unknown compat ioctls
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'fs/compat.c')
-rw-r--r--fs/compat.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/compat.c b/fs/compat.c
index 040a8be38a4..72e5e692382 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -371,13 +371,14 @@ static void compat_ioctl_error(struct file *filp, unsigned int fd,
fn = "?";
}
- sprintf(buf,"'%c'", (cmd>>24) & 0x3f);
+ sprintf(buf,"'%c'", (cmd>>_IOC_TYPESHIFT) & _IOC_TYPEMASK);
if (!isprint(buf[1]))
sprintf(buf, "%02x", buf[1]);
compat_printk("ioctl32(%s:%d): Unknown cmd fd(%d) "
- "cmd(%08x){%s} arg(%08x) on %s\n",
+ "cmd(%08x){t:%s;sz:%u} arg(%08x) on %s\n",
current->comm, current->pid,
(int)fd, (unsigned int)cmd, buf,
+ (cmd >> _IOC_SIZESHIFT) & _IOC_SIZEMASK,
(unsigned int)arg, fn);
if (path)