Re: __get_user_unaligned return value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday 14 June 2009, Anders Kaseorg wrote:
> The __get_user_unaligned macro in include/asm/uaccess-unaligned.h returns 
> the wrong value, since the ? -EFAULT : 0 is not on the last line of the 
> statement expression:
> 
> #define __get_user_unaligned(x, ptr)                                    \
> ({                                                                      \
>         __typeof__ (*(ptr)) __x;                                        \
>         __copy_from_user(&__x, (ptr), sizeof(*(ptr))) ? -EFAULT : 0;    \
>         (x) = __x;                                                      \
> })
> 
> I couldn’t find any callers, so I’m not sure whether the macro should be 
> patched or just removed.

Not sure either. __put_user_unaligned() still only has the one user that
Arun added back in 2.6.9, and I don't think we ever added any code that used
__get_user_unaligned(). That bug would probably have been noticed.

Even __put_user_unaligned only matters on ia64, because the only user of
that function is actually accessing aligned data on everything besides
x86-64 and ia64, and x86-64 does not even care.

I'm tempted to just rip out both _unaligned functions and to add a new
put_user_compat_u64() on ia64, and put a default into include/linux/uaccess.h
that just calls put_user() for everyone else.

	Arnd <><
--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux