Re: [arm-gnu] Linux 2.6.30.9 crash with 2007q3-51 4.2.1
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [arm-gnu] Linux 2.6.30.9 crash with 2007q3-51 4.2.1
- To: Mark Mitchell <mark@xxxxxxxxxxxxxxxx>, arm-gnu@xxxxxxxxxxxxxxxx
- Subject: Re: [arm-gnu] Linux 2.6.30.9 crash with 2007q3-51 4.2.1
- From: naveen yadav <yad.naveen@xxxxxxxxx>
- Date: Thu, 14 Jan 2010 19:17:03 +0530
Also adding
$ arm-none-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/paul/lite/linux/src/gcc-4.2/configure
--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu
--target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap
--disable-libssp --disable-libgomp --disable-libstdcxx-pch --with-gnu-as
--with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu
--enable-__cxa_atexit --with-pkgversion=CodeSourcery Sourcery G++ Lite
2007q3-51 --with-bugurl=https://support.codesourcery.com/GNUToolchain/--disable-nls
--prefix=/opt/codesourcery
--with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc
--with-build-sysroot=/scratch/paul/lite/linux/install/arm-none-linux-gnueabi/libc
--enable-poison-system-directories
--with-build-time-tools=/scratch/paul/lite/linux/install/arm-none-linux-gnueabi/bin
--with-build-time-tools=/scratch/paul/lite/linux/install/arm-none-linux-gnueabi/bin
--with-interwork --with-arch=armv7-a --with-mode=arm --with-tune=cortex-a8
--with-fpu=vfp3 --with-float=softfp
Thread model: posix
gcc version 4.2.1 (CodeSourcery Sourcery G++ Lite 2007q3-51)
On Thu, Jan 14, 2010 at 5:33 PM, naveen yadav <yad.naveen@xxxxxxxxx> wrote:
> Hi,
>
>
> When i Build my kernel 2.6.30.9 with 4.2.0 and 4.2.2, it works well But
> when i compile with 4.2.1 it crash in int
> register_netdevice_notifier(struct notifier_block *nb) function.
>
> I found that in 4.2.1 it generate wrong assembly.
>
> With version 4.2.0,
>
> c001b904 <arp_init>:
>
> c001b904: e92d4010 push {r4, lr}
>
> c001b908: e59f404c ldr r4, [pc, #76] ; c001b95c
> <arp_init+0x58>
>
> c001b90c: e24dd010 sub sp, sp, #16 ; 0x10
>
> c001b910: e1a00004 mov r0, r4
>
> c001b914: eb06fb88 bl c01da73c <neigh_table_init>
>
> c001b918: e28400f8 add r0, r4, #248 ; 0xf8
>
> c001b91c: eb06e2be bl c01d441c <dev_add_pack>
>
> c001b920: e2840e12 add r0, r4, #288 ; 0x120
>
> c001b924: eb06ce1a bl c01cf194 <register_pernet_subsys>
>
> c001b928: e59fc030 ldr ip, [pc, #48] ; c001b960
> <arp_init+0x5c>
>
> c001b92c: e3a0e000 mov lr, #0 ; 0x0
>
> c001b930: e1a0000e mov r0, lr
>
> c001b934: e2841028 add r1, r4, #40 ; 0x28
>
> c001b938: e3a02005 mov r2, #5 ; 0x5
>
> c001b93c: e3a03011 mov r3, #17 ; 0x11
>
> c001b940: e88d5000 stm sp, {ip, lr}
>
> c001b944: e58de008 str lr, [sp, #8]
>
> c001b948: eb06f2ee bl c01d8508 <neigh_sysctl_register>
>
> c001b94c: e2840e13 add r0, r4, #304 ; 0x130
>
> c001b950: e28dd010 add sp, sp, #16 ; 0x10
>
> c001b954: e8bd4010 pop {r4, lr}
>
> c001b958: ea06e01c b c01d39d0
> <register_netdevice_notifier>
>
> c001b95c: c0362a38 .word 0xc0362a38
>
> c001b960: c030f254 .word 0xc030f254
>
>
>
> With version 4.2.1,
>
> c001b0c4 <arp_init>:
>
> c001b0c4: e92d401f push {r0, r1, r2, r3, r4, lr}
>
> c001b0c8: e59f4044 ldr r4, [pc, #68] ; c001b114
> <arp_init+0x50>
>
> c001b0cc: e1a00004 mov r0, r4
>
> c001b0d0: eb06eeb2 bl c01d6ba0 <neigh_table_init>
>
> c001b0d4: e28400f8 add r0, r4, #248 ; 0xf8
>
> c001b0d8: eb06d5b5 bl c01d07b4 <dev_add_pack>
>
> c001b0dc: e2840e12 add r0, r4, #288 ; 0x120
>
> c001b0e0: eb06c144 bl c01cb5f8 <register_pernet_subsys>
>
> c001b0e4: e59fc02c ldr ip, [pc, #44] ; c001b118
> <arp_init+0x54>
>
> c001b0e8: e3a0e000 mov lr, #0 ; 0x0
>
> c001b0ec: e1a0000e mov r0, lr
>
> c001b0f0: e2841028 add r1, r4, #40 ; 0x28
>
> c001b0f4: e3a02005 mov r2, #5 ; 0x5
>
> c001b0f8: e3a03011 mov r3, #17 ; 0x11
>
> c001b0fc: e88d5000 stm sp, {ip, lr}
>
> c001b100: e58de008 str lr, [sp, #8]
>
> c001b104: eb06e623 bl c01d4998 <neigh_sysctl_register>
>
> c001b108: e2840e13 add r0, r4, #304 ; 0x130
>
> c001b10c: e8bd401f pop {r0, r1, r2, r3, r4, lr}
>
> c001b110: ea06d318 b c01cfd78
> <register_netdevice_notifier>
>
> c001b114: c035a540 .word 0xc035a540
>
> c001b118: c03078cf .word 0xc03078cf
>
>
>
> Parameter in r0 gets over-written after the " pop {r0, r1, r2,
> r3, r4, lr}" instruction execution. This is a compiler bug.
>
>
>
> CC options for compiling the file arp.o are
>
>
>
> arm-none-linux-gnueabi-gcc -Wp,-MD,net/ipv4/.arp.o.d -nostdinc -isystem
> /scratch/paul/lite/linux/install/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/include
> -Iinclude -I/data1/uma/t/linux-2.6.30.9/arch/arm/include -include
> include/linux/autoconf.h -D__KERNEL__ -mlittle-endian
> -Iarch/arm/mach-sdp/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
> -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
> -fno-delete-null-pointer-checks -Os -marm -mabi=aapcs-linux
> -mno-thumb-interwork -funwind-tables -D__LINUX_ARM_ARCH__=7 -march=armv7-a
> -msoft-float -Uarm -fno-stack-protector -fomit-frame-pointer
> -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow
> -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(arp)"
> -D"KBUILD_MODNAME=KBUILD_STR(arp)" -c -o net/ipv4/arp.o net/ipv4/arp.c;
> scripts/basic/fixdep net/ipv4/.arp.o.d net/ipv4/arp.o
> 'arm-none-linux-gnueabi-gcc -Wp,-MD,net/ipv4/.arp.o.d -nostdinc -isystem
> /scratch/paul/lite/linux/install/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/include
> -Iinclude -I/data1/uma/t/linux-2.6.30.9/arch/arm/include -include
> include/linux/autoconf.h -D__KERNEL__ -mlittle-endian
> -Iarch/arm/mach-sdp/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs
> -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
> -fno-delete-null-pointer-checks -Os -marm -mabi=aapcs-linux
> -mno-thumb-interwork -funwind-tables -D__LINUX_ARM_ARCH__=7 -march=armv7-a
> -msoft-float -Uarm -fno-stack-protector -fomit-frame-pointer
> -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow
> -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(arp)"
> -D"KBUILD_MODNAME=KBUILD_STR(arp)" -c -o net/ipv4/arp.o net/ipv4/arp.c' >
> net/ipv4/.arp.o.tmp; rm -f net/ipv4/.arp.o.d; mv -f net/ipv4/.arp.o.tmp
> net/ipv4/.arp.o.cmd
>
>
> Best Regards
> Naveen
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> List
>
>
>
> On Mon, Jan 11, 2010 at 8:20 PM, Mark Mitchell <mark@xxxxxxxxxxxxxxxx>
> wrote:
> > naveen yadav wrote:
> >
> >> I am using Sourcery G++ Lite 2007q3-51 4.2.1, and i got below crash.
> >> I check on mailing list at
> >>
> http://www.mail-archive.com/davinci-linux-open-source@xxxxxxxxxxxxxxxxxxxx/msg12029.html
> >> it also facing exact same issue, will you pls let me know what is issue
> ?
> >
> >> Unable to handle kernel NULL pointer dereference at virtual address
> 00000000
> >
> > That's a kernel crash, not a compiler crash. It's possible, of course,
> > that a compiler defect has resulted in a miscompilation of the kernel --
> > but it's more likely that the kernel (or a driver) has a bug that's
> > causing the crash. Unfortunately, there's no way for us to know; you
> > will have to debug the problem. If you think it's a compiler bug,
> > you'll need to provide preprocessed source code for the piece of the
> > kernel that's been miscompiled, command-line options passed to the
> > compiler, and some evidence that it is indeed a compiler bug.
> >
> > --
> > Mark Mitchell
> > CodeSourcery
> > mark@xxxxxxxxxxxxxxxx
> > (650) 331-3385 x713
> >
>
>
>