fix radeon setparam on 32/64 systems, harder.
authorDavid Woodhouse <dwmw2@infradead.org>
Sat, 16 Jun 2007 09:48:19 +0000 (10:48 +0100)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 16 Jun 2007 16:39:05 +0000 (09:39 -0700)
commitf4d2781731e846c2f01dd85e71883d120860c6dd
treeaac469bb1017619d0c314b6efcbbb465196237d6
parentde7f928ca460005086a8296be07c217aac4b625d
fix radeon setparam on 32/64 systems, harder.

Commit 9b01bd5b284bbf519b726b39f1352023cb5e9e69 introduced a
compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was
to handle the fact that on i386, alignof(uint64_t)==4.

Unfortunately, this handler was installed for _all_ 64-bit
architectures, instead of only x86_64 and ia64.  And thus it breaks
32-bit compatibility on every other arch, where 64-bit integers are
aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode.

Arnd has a cunning plan to use 'compat_u64' with appropriate alignment
attributes according to the 32-bit ABI, but for now let's just make the
compat_radeon_cp_setparam routine entirely disappear on 64-bit machines
whose 32-bit compat support isn't for i386.  It would be a no-op with
compat_u64 anyway.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Dave Airlie <airlied@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/char/drm/radeon_ioc32.c