fix radeon setparam on 32/64 systems, harder.
authorDavid Woodhouse <dwmw2@infradead.org>
Mon, 18 Jun 2007 02:45:20 +0000 (12:45 +1000)
committerDave Airlie <airlied@linux.ie>
Mon, 18 Jun 2007 02:46:00 +0000 (12:46 +1000)
commit638ebbab54a48004c2e1d9cc5498e1dec976911e
tree4799906dc07cea95f607fc76179ea8e77f91e94d
parent3d5d41fa9823cf44138c8f4bc954bca80539d74e
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>
linux-core/radeon_ioc32.c