On Tue, Mar 19, 2013 at 09:43:11PM +0700, Mulyadi Santosa wrote:
Hi ...
On Tue, Mar 19, 2013 at 12:28 PM, Kumar amit mehta <gmate.amit@gmail.com> wrote:
grep for copy_from_user_overflow gives me this:
amit@ubuntu:~/linux-next/linux-next$ grep -ri copy_from_user_overflow * arch/s390/include/asm/uaccess.h:extern void copy_from_user_overflow(void) arch/s390/include/asm/uaccess.h: copy_from_user_overflow(); arch/tile/include/asm/uaccess.h:extern void copy_from_user_overflow(void) arch/tile/include/asm/uaccess.h: copy_from_user_overflow(); arch/parisc/include/asm/uaccess.h:extern void copy_from_user_overflow(void) arch/parisc/include/asm/uaccess.h: copy_from_user_overflow(); arch/x86/include/asm/uaccess_32.h:extern void copy_from_user_overflow(void) arch/x86/include/asm/uaccess_32.h: copy_from_user_overflow(); drivers/vfio/pci/vfio_pci_config.c: * with count of 1/2/4 and hits copy_from_user_overflow without this. lib/usercopy.c:void copy_from_user_overflow(void)
IMHO, I think uaccess_32.h is what you need here.
I draw that conclusion after checking this line: http://lxr.linux.no/#linux+v3.8.3/arch/x86/include/asm/uaccess_32.h#L194
I might be wrong, so feel free to test first
Actually the above header file is supposed to get included, based on the architecture only. <snip from arch/x86/include/asm/uaccess.h> #ifdef CONFIG_X86_32 # include <asm/uaccess_32.h> #else # include <asm/uaccess_64.h> #endif <snip from arch/x86/include/asm/uaccess.h> <snip from .config> amit@ubuntu:~/linux-next/linux-next$ grep -w CONFIG_X86_32 .config CONFIG_X86_32=y <snip from .config> CPU arch on my machine: amit@ubuntu:~/linux-next/linux-next$ uname -m i686 Based on this observation, I think, I do not need to include the uaccess_32.h in any of those files. -Amit