Inline On Wed, Mar 20, 2013 at 12:07:57AM -0700, Kumar amit mehta wrote: > On Tue, Mar 19, 2013 at 11:56:44PM -0700, Kumar amit mehta wrote: > > 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@xxxxxxxxx> 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. > > > Based on the above understanding, I didn't tried including uaccess_32.h in any of those files, complaining for copy_from_user_overflow symbol error [1], and Instead I thought I'll de-select these modules from being build and will thus not hit this issue. So now my .config file looks something like this: amit@ubuntu:~/linux-next/linux-next$ egrep -i 'pktgen|binfmt_misc|cxt1|isdn' .config # CONFIG_BINFMT_MISC is not set # CONFIG_NET_PKTGEN is not set # CONFIG_ISDN is not set # CONFIG_CXT1E1 is not set I didn't face any issue with the build now and while trying to boot from this newly built kernel, I found myself hopelessly staring at the screen, which seem to have stuck in the boot process. I think the kernel configuration file and the boot screenshot can be helpful for inspecting this boot issue. But before attaching these small files(136K and 32K respectively) and send it to the mailing list, I'd like to ask, if that's fine with you folks. [1] build error when modules such as pktgen are selected: ERROR: "copy_from_user_overflow" [net/core/pktgen.ko] undefined! ERROR: "copy_from_user_overflow" [fs/binfmt_misc.ko] undefined! ERROR: "copy_from_user_overflow" [drivers/staging/cxt1e1/cxt1e1.ko] undefined! ERROR: "copy_from_user_overflow" [drivers/isdn/icn/icn.ko] undefined! ERROR: "copy_from_user_overflow" [drivers/isdn/hardware/avm/b1.ko] undefined! > I forgot that 'uname -m' will return me the kernel version and _not_ the CPU > architecture. The CPU on my machine seem to be 64 bit (/proc/cpuinfo|grep flags > shows 'lm'). So my understanding is that I've a 32 bit kernel running on a 64 > bit machine. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies