Al Viro
c4a0472725
fix rawctl compat ioctls breakage on amd64 and itanic
...
RAW_SETBIND and RAW_GETBIND 32bit versions are fscked in interesting ways.
1) fs/compat_ioctl.c has COMPATIBLE_IOCTL(RAW_SETBIND) followed by
HANDLE_IOCTL(RAW_SETBIND, raw_ioctl). The latter is ignored.
2) on amd64 (and itanic) the damn thing is broken - we have int + u64 + u64
and layouts on i386 and amd64 are _not_ the same. raw_ioctl() would
work there, but it's never called due to (1). As it is, i386 /sbin/raw
definitely doesn't work on amd64 boxen.
3) switching to raw_ioctl() as is would *not* work on e.g. sparc64 and ppc64,
which would be rather sad, seeing that normal userland there is 32bit.
The thing is, slapping __packed on the struct in question does not DTRT -
it eliminates *all* padding. The real solution is to use compat_u64.
4) of course, all that stuff has no business being outside of raw.c in the
first place - there should be ->compat_ioctl() for /dev/rawctl instead of
messing with compat_ioctl.c.
[akpm@linux-foundation.org: coding-style fixes]
[arnd@arndb.de: port to 2.6.36]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2010-10-19 11:29:54 +02:00
..
2010-08-30 10:35:28 -05:00
2010-08-09 16:47:39 -04:00
2010-08-09 16:48:51 -04:00
2010-08-13 10:37:30 -07:00
2010-08-09 00:13:34 +02:00
2010-08-11 08:59:06 -07:00
2010-06-16 18:05:05 +02:00
2010-08-09 16:48:53 -04:00
2010-08-10 15:22:42 -07:00
2010-08-12 09:51:35 -07:00
2010-08-26 09:26:50 -07:00
2010-08-26 16:53:27 +00:00
2010-08-10 15:22:42 -07:00
2010-06-04 17:16:29 -04:00
2010-08-18 01:01:33 -04:00
2010-05-19 22:41:57 -04:00
2010-05-21 18:31:12 -04:00
2010-08-05 14:23:45 -05:00
2010-08-27 10:50:53 -05:00
2010-08-11 09:19:43 -07:00
2010-08-09 16:48:45 -04:00
2010-08-10 11:26:52 -07:00
2010-08-10 11:26:52 -07:00
2010-08-18 01:09:01 -04:00
2010-08-10 11:26:52 -07:00
2010-08-12 09:51:35 -07:00
2010-09-07 13:42:41 +02:00
2010-08-10 15:22:42 -07:00
2010-08-09 16:48:37 -04:00
2010-08-09 16:48:37 -04:00
2010-08-18 06:21:10 -04:00
2010-08-09 16:48:17 -04:00
2010-08-09 16:48:16 -04:00
2010-08-09 16:47:49 -04:00
2010-08-11 00:29:47 -04:00
2010-08-18 01:09:01 -04:00
2010-08-18 01:09:01 -04:00
2010-08-10 11:49:21 -07:00
2010-08-10 15:33:09 -07:00
2010-03-30 22:02:32 +09:00
2010-08-14 00:24:24 +02:00
2010-09-09 18:57:25 -07:00
2010-08-10 13:58:28 -07:00
2010-08-18 15:45:23 -07:00
2010-03-30 22:02:32 +09:00
2010-09-07 19:21:02 -07:00
2010-08-30 10:18:03 +09:00
2010-08-27 21:42:11 -04:00
2010-08-09 16:48:37 -04:00
2010-09-08 14:26:00 +08:00
2010-08-10 11:47:36 -07:00
2010-08-13 10:06:55 +02:00
2010-09-09 18:57:23 -07:00
2010-08-09 16:47:31 -04:00
2010-08-10 11:26:52 -07:00
2010-08-09 16:47:39 -04:00
2010-08-18 01:09:01 -04:00
2010-08-09 16:48:00 -04:00
2010-08-08 22:29:33 +00:00
2010-09-03 17:26:28 -07:00
2010-08-11 08:59:23 -07:00
2010-08-10 11:26:52 -07:00
2010-08-10 11:26:52 -07:00
2010-08-18 01:09:01 -04:00
2010-09-10 10:16:54 -05:00
2010-08-05 13:21:23 -07:00
2010-05-27 22:03:05 -04:00
2010-08-09 16:47:39 -04:00
2010-08-14 00:24:24 +02:00
2010-03-30 22:02:32 +09:00
2010-06-01 08:11:06 -07:00
2010-03-06 11:26:46 -08:00
2010-03-30 22:02:32 +09:00
2010-06-29 15:29:31 -07:00
2010-09-09 18:57:24 -07:00
2010-08-17 18:07:43 -07:00
2010-08-23 13:36:59 +02:00
2010-08-07 18:20:39 +02:00
2010-08-11 08:59:18 -07:00
2010-08-18 01:09:01 -04:00
2010-08-06 09:17:02 -07:00
2010-03-06 11:26:45 -08:00
2010-10-19 11:29:54 +02:00
2010-08-13 16:53:13 -07:00
2010-08-18 08:35:48 -04:00
2010-09-09 18:57:22 -07:00
2010-08-09 16:47:44 -04:00
2010-03-30 22:02:32 +09:00
2010-05-11 17:43:58 +02:00
2010-09-10 08:10:26 -07:00
2010-09-09 18:57:25 -07:00
2010-03-30 22:02:32 +09:00
2010-08-18 08:35:48 -04:00
2010-08-11 08:59:02 -07:00
2010-03-30 22:02:32 +09:00
2010-08-18 08:35:46 -04:00
2010-08-28 08:52:10 +02:00
2010-08-18 01:04:22 -04:00
2010-08-10 11:39:13 -07:00
2010-08-18 08:35:48 -04:00
2010-08-14 00:24:24 +02:00
2010-03-30 22:02:32 +09:00
2010-07-20 17:30:22 +02:00
2010-08-09 16:47:39 -04:00
2010-03-08 16:55:37 +01:00
2010-05-21 18:31:17 -04:00
2010-08-18 06:24:41 -04:00
2010-03-30 22:02:32 +09:00
2010-08-18 08:35:48 -04:00
2010-09-07 13:46:20 -07:00
2010-03-03 13:00:21 -05:00
2010-08-18 08:35:47 -04:00
2010-06-10 19:08:34 +02:00
2010-08-18 08:35:48 -04:00
2010-03-03 14:07:55 -05:00
2010-07-28 09:58:32 -04:00
2010-08-09 20:45:05 -07:00
2010-03-12 15:52:32 -08:00
2010-03-07 15:48:26 -08:00
2010-08-11 08:59:20 -07:00
2010-08-07 18:52:56 +02:00
2010-08-13 16:53:13 -07:00
2010-08-09 16:48:44 -04:00
2010-08-18 08:35:48 -04:00
2010-08-09 16:47:43 -04:00
2010-05-20 13:21:42 -07:00
2010-08-13 16:53:13 -07:00
2010-03-30 22:02:32 +09:00
2010-05-21 18:31:18 -04:00