All of lore.kernel.org
 help / color / mirror / Atom feed
* segfault in sparse snapshot 2010-02-13
@ 2010-03-24 17:41 Randy Dunlap
  2010-03-24 19:36 ` Josh Triplett
  0 siblings, 1 reply; 13+ messages in thread
From: Randy Dunlap @ 2010-03-24 17:41 UTC (permalink / raw)
  To: linux-sparse

(snapshot from Dave Jones:
  http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )


In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
Linus's mainline kernel tree)


The last messages are:

net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
net/bridge/br_fdb.c:225:9:    left side has type bad type
net/bridge/br_fdb.c:225:9:    right side has type int
net/bridge/br_fdb.c:225:9: error: cannot dereference this type
/bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args 
 -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
make[3]: *** [net/bridge/br_fdb.o] Error 139


---
~Randy

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-24 17:41 segfault in sparse snapshot 2010-02-13 Randy Dunlap
@ 2010-03-24 19:36 ` Josh Triplett
       [not found]   ` <4BAA6C4C.8010103@xenotime.net>
  0 siblings, 1 reply; 13+ messages in thread
From: Josh Triplett @ 2010-03-24 19:36 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: linux-sparse

On Wed, Mar 24, 2010 at 10:41:44AM -0700, Randy Dunlap wrote:
> (snapshot from Dave Jones:
>   http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )
> 
> 
> In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
> sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
> Linus's mainline kernel tree)
> 
> 
> The last messages are:
> 
> net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
> net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
> net/bridge/br_fdb.c:225:9:    left side has type bad type
> net/bridge/br_fdb.c:225:9:    right side has type int
> net/bridge/br_fdb.c:225:9: error: cannot dereference this type
> /bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-arg
 s -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-
>  larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
> make[3]: *** [net/bridge/br_fdb.o] Error 139

Ouch.

Can you attach a preprocessed source .i file that reproduces the
problem? "make net/bridge/br_fdb.i" should work.

- Josh Triplett

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
       [not found]   ` <4BAA6C4C.8010103@xenotime.net>
@ 2010-03-24 20:34     ` Josh Triplett
  2010-03-24 21:01       ` Randy Dunlap
  2010-03-25 10:49       ` Dan Carpenter
  0 siblings, 2 replies; 13+ messages in thread
From: Josh Triplett @ 2010-03-24 20:34 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: linux-sparse

On Wed, Mar 24, 2010 at 12:47:24PM -0700, Randy Dunlap wrote:
> On 03/24/10 12:36, Josh Triplett wrote:
> > On Wed, Mar 24, 2010 at 10:41:44AM -0700, Randy Dunlap wrote:
> >> (snapshot from Dave Jones:
> >>   http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )
> >>
> >>
> >> In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
> >> sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
> >> Linus's mainline kernel tree)
> >>
> >>
> >> The last messages are:
> >>
> >> net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
> >> net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
> >> net/bridge/br_fdb.c:225:9:    left side has type bad type
> >> net/bridge/br_fdb.c:225:9:    right side has type int
> >> net/bridge/br_fdb.c:225:9: error: cannot dereference this type
> >> /bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-
 args -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wfra
> me-
> >>  larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
> >> make[3]: *** [net/bridge/br_fdb.o] Error 139
> > 
> > Ouch.
> > 
> > Can you attach a preprocessed source .i file that reproduces the
> > problem? "make net/bridge/br_fdb.i" should work.
> 
> Sure, attached.

I tried to reproduce this segfault with this file and current Sparse
from Git, and couldn't seem to reproduce it.  I tried the posted command
line and many variations on it.

I had to explicitly drop -Wall or add -Wno-shadow to get the code to
pass Sparse, due to a pile of warnings about ______f and ______r.  Apart
from that, I didn't see any issue.

- Josh Triplett

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-24 20:34     ` Josh Triplett
@ 2010-03-24 21:01       ` Randy Dunlap
  2010-03-24 22:00         ` Josh Triplett
  2010-03-25 10:49       ` Dan Carpenter
  1 sibling, 1 reply; 13+ messages in thread
From: Randy Dunlap @ 2010-03-24 21:01 UTC (permalink / raw)
  To: Josh Triplett; +Cc: linux-sparse

On 03/24/10 13:34, Josh Triplett wrote:
> On Wed, Mar 24, 2010 at 12:47:24PM -0700, Randy Dunlap wrote:
>> On 03/24/10 12:36, Josh Triplett wrote:
>>> On Wed, Mar 24, 2010 at 10:41:44AM -0700, Randy Dunlap wrote:
>>>> (snapshot from Dave Jones:
>>>>   http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )
>>>>
>>>>
>>>> In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
>>>> sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
>>>> Linus's mainline kernel tree)
>>>>
>>>>
>>>> The last messages are:
>>>>
>>>> net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
>>>> net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
>>>> net/bridge/br_fdb.c:225:9:    left side has type bad type
>>>> net/bridge/br_fdb.c:225:9:    right side has type int
>>>> net/bridge/br_fdb.c:225:9: error: cannot dereference this type
>>>> /bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-
 args -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wf
ra
>> me-
>>>>  larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
>>>> make[3]: *** [net/bridge/br_fdb.o] Error 139
>>>
>>> Ouch.
>>>
>>> Can you attach a preprocessed source .i file that reproduces the
>>> problem? "make net/bridge/br_fdb.i" should work.
>>
>> Sure, attached.
> 
> I tried to reproduce this segfault with this file and current Sparse
> from Git, and couldn't seem to reproduce it.  I tried the posted command
> line and many variations on it.
> 
> I had to explicitly drop -Wall or add -Wno-shadow to get the code to
> pass Sparse, due to a pile of warnings about ______f and ______r.  Apart
> from that, I didn't see any issue.

OK, maybe I'll blame it on gcc then.  I cloned the current git tree
and still have the sparse segfault...

thanks for looking.

-- 
~Randy

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-24 21:01       ` Randy Dunlap
@ 2010-03-24 22:00         ` Josh Triplett
  2010-03-24 22:02           ` Randy Dunlap
  0 siblings, 1 reply; 13+ messages in thread
From: Josh Triplett @ 2010-03-24 22:00 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: linux-sparse

On Wed, Mar 24, 2010 at 02:01:47PM -0700, Randy Dunlap wrote:
> On 03/24/10 13:34, Josh Triplett wrote:
> > On Wed, Mar 24, 2010 at 12:47:24PM -0700, Randy Dunlap wrote:
> >> On 03/24/10 12:36, Josh Triplett wrote:
> >>> On Wed, Mar 24, 2010 at 10:41:44AM -0700, Randy Dunlap wrote:
> >>>> (snapshot from Dave Jones:
> >>>>   http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )
> >>>>
> >>>>
> >>>> In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
> >>>> sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
> >>>> Linus's mainline kernel tree)
> >>>>
> >>>>
> >>>> The last messages are:
> >>>>
> >>>> net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
> >>>> net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
> >>>> net/bridge/br_fdb.c:225:9:    left side has type bad type
> >>>> net/bridge/br_fdb.c:225:9:    right side has type int
> >>>> net/bridge/br_fdb.c:225:9: error: cannot dereference this type
> >>>> /bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoin
 g-args -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wf
> ra
> >> me-
> >>>>  larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
> >>>> make[3]: *** [net/bridge/br_fdb.o] Error 139
> >>>
> >>> Ouch.
> >>>
> >>> Can you attach a preprocessed source .i file that reproduces the
> >>> problem? "make net/bridge/br_fdb.i" should work.
> >>
> >> Sure, attached.
> > 
> > I tried to reproduce this segfault with this file and current Sparse
> > from Git, and couldn't seem to reproduce it.  I tried the posted command
> > line and many variations on it.
> > 
> > I had to explicitly drop -Wall or add -Wno-shadow to get the code to
> > pass Sparse, due to a pile of warnings about ______f and ______r.  Apart
> > from that, I didn't see any issue.
> 
> OK, maybe I'll blame it on gcc then.  I cloned the current git tree
> and still have the sparse segfault...
> 
> thanks for looking.

Can you successfully reproduce the segfault with the .i file, or only
as part of the kernel build?

- Josh Triplett

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-24 22:00         ` Josh Triplett
@ 2010-03-24 22:02           ` Randy Dunlap
  0 siblings, 0 replies; 13+ messages in thread
From: Randy Dunlap @ 2010-03-24 22:02 UTC (permalink / raw)
  To: Josh Triplett; +Cc: linux-sparse

On 03/24/10 15:00, Josh Triplett wrote:
> On Wed, Mar 24, 2010 at 02:01:47PM -0700, Randy Dunlap wrote:
>> On 03/24/10 13:34, Josh Triplett wrote:
>>> On Wed, Mar 24, 2010 at 12:47:24PM -0700, Randy Dunlap wrote:
>>>> On 03/24/10 12:36, Josh Triplett wrote:
>>>>> On Wed, Mar 24, 2010 at 10:41:44AM -0700, Randy Dunlap wrote:
>>>>>> (snapshot from Dave Jones:
>>>>>>   http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )
>>>>>>
>>>>>>
>>>>>> In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
>>>>>> sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
>>>>>> Linus's mainline kernel tree)
>>>>>>
>>>>>>
>>>>>> The last messages are:
>>>>>>
>>>>>> net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
>>>>>> net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
>>>>>> net/bridge/br_fdb.c:225:9:    left side has type bad type
>>>>>> net/bridge/br_fdb.c:225:9:    right side has type int
>>>>>> net/bridge/br_fdb.c:225:9: error: cannot dereference this type
>>>>>> /bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoin
 g-args -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -
Wf
>> ra
>>>> me-
>>>>>>  larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
>>>>>> make[3]: *** [net/bridge/br_fdb.o] Error 139
>>>>>
>>>>> Ouch.
>>>>>
>>>>> Can you attach a preprocessed source .i file that reproduces the
>>>>> problem? "make net/bridge/br_fdb.i" should work.
>>>>
>>>> Sure, attached.
>>>
>>> I tried to reproduce this segfault with this file and current Sparse
>>> from Git, and couldn't seem to reproduce it.  I tried the posted command
>>> line and many variations on it.
>>>
>>> I had to explicitly drop -Wall or add -Wno-shadow to get the code to
>>> pass Sparse, due to a pile of warnings about ______f and ______r.  Apart
>>> from that, I didn't see any issue.
>>
>> OK, maybe I'll blame it on gcc then.  I cloned the current git tree
>> and still have the sparse segfault...
>>
>> thanks for looking.
> 
> Can you successfully reproduce the segfault with the .i file, or only
> as part of the kernel build?

Only as part of the kernel build.

-- 
~Randy

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-24 20:34     ` Josh Triplett
  2010-03-24 21:01       ` Randy Dunlap
@ 2010-03-25 10:49       ` Dan Carpenter
  2010-03-25 15:46         ` Josh Triplett
  1 sibling, 1 reply; 13+ messages in thread
From: Dan Carpenter @ 2010-03-25 10:49 UTC (permalink / raw)
  To: Josh Triplett; +Cc: Randy Dunlap, linux-sparse

On Wed, Mar 24, 2010 at 01:34:29PM -0700, Josh Triplett wrote:
> On Wed, Mar 24, 2010 at 12:47:24PM -0700, Randy Dunlap wrote:
> > On 03/24/10 12:36, Josh Triplett wrote:
> > > On Wed, Mar 24, 2010 at 10:41:44AM -0700, Randy Dunlap wrote:
> > >> (snapshot from Dave Jones:
> > >>   http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )
> > >>
> > >>
> > >> In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
> > >> sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
> > >> Linus's mainline kernel tree)
> > >>
> > >>
> > >> The last messages are:
> > >>
> > >> net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
> > >> net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
> > >> net/bridge/br_fdb.c:225:9:    left side has type bad type
> > >> net/bridge/br_fdb.c:225:9:    right side has type int
> > >> net/bridge/br_fdb.c:225:9: error: cannot dereference this type
> > >> /bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoin
 g-args -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wfra
> > me-
> > >>  larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
> > >> make[3]: *** [net/bridge/br_fdb.o] Error 139
> > > 
> > > Ouch.
> > > 
> > > Can you attach a preprocessed source .i file that reproduces the
> > > problem? "make net/bridge/br_fdb.i" should work.
> > 
> > Sure, attached.
> 
> I tried to reproduce this segfault with this file and current Sparse
> from Git, and couldn't seem to reproduce it.  I tried the posted command
> line and many variations on it.
> 
> I had to explicitly drop -Wall or add -Wno-shadow to get the code to
> pass Sparse, due to a pile of warnings about ______f and ______r.  Apart
> from that, I didn't see any issue.

Those are from the __branch_check__ macro in include/linux/compiler.h.
They get turned off if __CHECKER__ is defined, but doing the
"make net/bridge/br_fdb.i" will not have that.

That change could explain why the preprocessed code doesn't segfault.

regards,
dan carpenter

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-25 10:49       ` Dan Carpenter
@ 2010-03-25 15:46         ` Josh Triplett
  2010-03-25 16:28           ` Randy Dunlap
  0 siblings, 1 reply; 13+ messages in thread
From: Josh Triplett @ 2010-03-25 15:46 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: Randy Dunlap, linux-sparse

On Thu, Mar 25, 2010 at 01:49:47PM +0300, Dan Carpenter wrote:
> On Wed, Mar 24, 2010 at 01:34:29PM -0700, Josh Triplett wrote:
> > On Wed, Mar 24, 2010 at 12:47:24PM -0700, Randy Dunlap wrote:
> > > On 03/24/10 12:36, Josh Triplett wrote:
> > > > On Wed, Mar 24, 2010 at 10:41:44AM -0700, Randy Dunlap wrote:
> > > >> (snapshot from Dave Jones:
> > > >>   http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )
> > > >>
> > > >>
> > > >> In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
> > > >> sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
> > > >> Linus's mainline kernel tree)
> > > >>
> > > >>
> > > >> The last messages are:
> > > >>
> > > >> net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
> > > >> net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
> > > >> net/bridge/br_fdb.c:225:9:    left side has type bad type
> > > >> net/bridge/br_fdb.c:225:9:    right side has type int
> > > >> net/bridge/br_fdb.c:225:9: error: cannot dereference this type
> > > >> /bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgo
 ing-args -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -
>  Wfra
> > > me-
> > > >>  larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
> > > >> make[3]: *** [net/bridge/br_fdb.o] Error 139
> > > > 
> > > > Ouch.
> > > > 
> > > > Can you attach a preprocessed source .i file that reproduces the
> > > > problem? "make net/bridge/br_fdb.i" should work.
> > > 
> > > Sure, attached.
> > 
> > I tried to reproduce this segfault with this file and current Sparse
> > from Git, and couldn't seem to reproduce it.  I tried the posted command
> > line and many variations on it.
> > 
> > I had to explicitly drop -Wall or add -Wno-shadow to get the code to
> > pass Sparse, due to a pile of warnings about ______f and ______r.  Apart
> > from that, I didn't see any issue.
> 
> Those are from the __branch_check__ macro in include/linux/compiler.h.
> They get turned off if __CHECKER__ is defined, but doing the
> "make net/bridge/br_fdb.i" will not have that.
> 
> That change could explain why the preprocessed code doesn't segfault.

Good catch!

Randy, could you perhaps add a "#define __CHECKER__" at the top of
br_fdb.c and then do "make net/bridge/br_fdb.i" again?  That *should*
produce a .i file which matches what Sparse would see.  Hopefully we can
reproduce the bug with that.

- Josh Triplett

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-25 15:46         ` Josh Triplett
@ 2010-03-25 16:28           ` Randy Dunlap
  2010-03-25 17:20             ` Christopher Li
  0 siblings, 1 reply; 13+ messages in thread
From: Randy Dunlap @ 2010-03-25 16:28 UTC (permalink / raw)
  To: Josh Triplett; +Cc: Dan Carpenter, linux-sparse

On 03/25/10 08:46, Josh Triplett wrote:
> On Thu, Mar 25, 2010 at 01:49:47PM +0300, Dan Carpenter wrote:
>> On Wed, Mar 24, 2010 at 01:34:29PM -0700, Josh Triplett wrote:
>>> On Wed, Mar 24, 2010 at 12:47:24PM -0700, Randy Dunlap wrote:
>>>> On 03/24/10 12:36, Josh Triplett wrote:
>>>>> On Wed, Mar 24, 2010 at 10:41:44AM -0700, Randy Dunlap wrote:
>>>>>> (snapshot from Dave Jones:
>>>>>>   http://www.codemonkey.org.uk/projects/git-snapshots/sparse/ )
>>>>>>
>>>>>>
>>>>>> In the linux-next-20100324 or akpm's kernel patchset (mmotm-2010-03-23),
>>>>>> sparse segfaults when checking net/bridge/br_fdb.c. (does not happen in
>>>>>> Linus's mainline kernel tree)
>>>>>>
>>>>>>
>>>>>> The last messages are:
>>>>>>
>>>>>> net/bridge/br_fdb.c:225:9: error: no member 'hash' in struct net_bridge
>>>>>> net/bridge/br_fdb.c:225:9: error: incompatible types for operation (+)
>>>>>> net/bridge/br_fdb.c:225:9:    left side has type bad type
>>>>>> net/bridge/br_fdb.c:225:9:    right side has type int
>>>>>> net/bridge/br_fdb.c:225:9: error: cannot dereference this type
>>>>>> /bin/sh: line 1: 28041 Segmentation fault      sparse -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise -Wno-return-void -D__x86_64__ -m64 -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -Wp,-MD,net/bridge/.br_fdb.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.4.1/include -I/lnx/src/NEXT/linux-next-20100324/arch/x86/include -Iinclude -I/lnx/src/NEXT/linux-next-20100324/include -include include/generated/autoconf.h -I/lnx/src/NEXT/linux-next-20100324/net/bridge -Inet/bridge -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoin
 g-args -fstack-protector -fno-builtin-memcpy -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -

>>  Wfra
>>>> me-
>>>>>>  larger-than=2048 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -fprofile-arcs -ftest-coverage -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(br_fdb)" -D"KBUILD_MODNAME=KBUILD_STR(bridge)" -D"DEBUG_HASH=21" -D"DEBUG_HASH2=11" /lnx/src/NEXT/linux-next-20100324/net/bridge/br_fdb.c
>>>>>> make[3]: *** [net/bridge/br_fdb.o] Error 139
>>>>>
>>>>> Ouch.
>>>>>
>>>>> Can you attach a preprocessed source .i file that reproduces the
>>>>> problem? "make net/bridge/br_fdb.i" should work.
>>>>
>>>> Sure, attached.
>>>
>>> I tried to reproduce this segfault with this file and current Sparse
>>> from Git, and couldn't seem to reproduce it.  I tried the posted command
>>> line and many variations on it.
>>>
>>> I had to explicitly drop -Wall or add -Wno-shadow to get the code to
>>> pass Sparse, due to a pile of warnings about ______f and ______r.  Apart
>>> from that, I didn't see any issue.
>>
>> Those are from the __branch_check__ macro in include/linux/compiler.h.
>> They get turned off if __CHECKER__ is defined, but doing the
>> "make net/bridge/br_fdb.i" will not have that.
>>
>> That change could explain why the preprocessed code doesn't segfault.
> 
> Good catch!
> 
> Randy, could you perhaps add a "#define __CHECKER__" at the top of
> br_fdb.c and then do "make net/bridge/br_fdb.i" again?  That *should*
> produce a .i file which matches what Sparse would see.  Hopefully we can
> reproduce the bug with that.

OK, I emailed that file, but it's huge -- it probably won't be on the
mailing list, so I also uploaded it to here:
  http://www.xenotime.net/linux/doc/br_fdb.i

-- 
~Randy

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-25 16:28           ` Randy Dunlap
@ 2010-03-25 17:20             ` Christopher Li
  2010-03-29  7:50               ` Christopher Li
  0 siblings, 1 reply; 13+ messages in thread
From: Christopher Li @ 2010-03-25 17:20 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Josh Triplett, Dan Carpenter, linux-sparse

On Thu, Mar 25, 2010 at 9:28 AM, Randy Dunlap <rdunlap@xenotime.net> wrote:
>
> OK, I emailed that file, but it's huge -- it probably won't be on the
> mailing list, so I also uploaded it to here:
>  http://www.xenotime.net/linux/doc/br_fdb.i

Thanks, I can duplicate the segfault now.

Looking at it.

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-25 17:20             ` Christopher Li
@ 2010-03-29  7:50               ` Christopher Li
  2010-03-29 16:46                 ` Randy Dunlap
  0 siblings, 1 reply; 13+ messages in thread
From: Christopher Li @ 2010-03-29  7:50 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Josh Triplett, Dan Carpenter, linux-sparse

On Thu, Mar 25, 2010 at 10:20 AM, Christopher Li <sparse@chrisli.org> wrote:
> On Thu, Mar 25, 2010 at 9:28 AM, Randy Dunlap <rdunlap@xenotime.net> wrote:
>>
>> OK, I emailed that file, but it's huge -- it probably won't be on the
>> mailing list, so I also uploaded it to here:
>>  http://www.xenotime.net/linux/doc/br_fdb.i
>
> Thanks, I can duplicate the segfault now.
>
> Looking at it.

Hi,

I check in a change at.

commit 703499e552b45542a328e3016868419d65143f2b
Author: Christopher <sparse@chrisli.org>
Date:   Sun Mar 28 22:41:49 2010 -0700

    evaluate: check for NULL type inside typeof

    This should fix the segfault report by Randy.
    It still doesn't parse the struct attribute correctly though.

    Signed-off-by: Christopher <sparse@chrisli.org>

diff --git a/evaluate.c b/evaluate.c
index 28bfd7c..cdbd064 100644
--- a/evaluate.c
+++ b/evaluate.c
@@ -340,7 +340,9 @@ static inline int classify_type(struct symbol
*type, struct sy
                type = type->ctype.base_type;
        if (type->type == SYM_TYPEOF) {
                type = evaluate_expression(type->initializer);
-               if (type->type == SYM_NODE)
+               if (!type)
+                       type = &bad_ctype;
+               else if (type->type == SYM_NODE)
                        type = type->ctype.base_type;
        }
        if (type->type == SYM_ENUM)


That should stop the segfault. Please verify. More work needs to be done
to parse the struct attribute correctly.

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

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-29  7:50               ` Christopher Li
@ 2010-03-29 16:46                 ` Randy Dunlap
  2010-03-29 17:29                   ` Christopher Li
  0 siblings, 1 reply; 13+ messages in thread
From: Randy Dunlap @ 2010-03-29 16:46 UTC (permalink / raw)
  To: Christopher Li; +Cc: Josh Triplett, Dan Carpenter, linux-sparse

On Mon, 29 Mar 2010 00:50:31 -0700 Christopher Li wrote:

> On Thu, Mar 25, 2010 at 10:20 AM, Christopher Li <sparse@chrisli.org> wrote:
> > On Thu, Mar 25, 2010 at 9:28 AM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> >>
> >> OK, I emailed that file, but it's huge -- it probably won't be on the
> >> mailing list, so I also uploaded it to here:
> >>  http://www.xenotime.net/linux/doc/br_fdb.i
> >
> > Thanks, I can duplicate the segfault now.
> >
> > Looking at it.
> 
> Hi,
> 
> I check in a change at.
> 
> commit 703499e552b45542a328e3016868419d65143f2b
> Author: Christopher <sparse@chrisli.org>
> Date:   Sun Mar 28 22:41:49 2010 -0700
> 
>     evaluate: check for NULL type inside typeof
> 
>     This should fix the segfault report by Randy.
>     It still doesn't parse the struct attribute correctly though.
> 
>     Signed-off-by: Christopher <sparse@chrisli.org>
> 
> diff --git a/evaluate.c b/evaluate.c
> index 28bfd7c..cdbd064 100644
> --- a/evaluate.c
> +++ b/evaluate.c
> @@ -340,7 +340,9 @@ static inline int classify_type(struct symbol
> *type, struct sy
>                 type = type->ctype.base_type;
>         if (type->type == SYM_TYPEOF) {
>                 type = evaluate_expression(type->initializer);
> -               if (type->type == SYM_NODE)
> +               if (!type)
> +                       type = &bad_ctype;
> +               else if (type->type == SYM_NODE)
>                         type = type->ctype.base_type;
>         }
>         if (type->type == SYM_ENUM)
> 
> 
> That should stop the segfault. Please verify. More work needs to be done
> to parse the struct attribute correctly.

Hi Chris,

Yes, this gets it past the segfault problem.  Thanks.

[Just had a little trouble applying it because it's full of spaces
instead of tabs.  Once I realized that, it was no problem.]

---
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: segfault in sparse snapshot 2010-02-13
  2010-03-29 16:46                 ` Randy Dunlap
@ 2010-03-29 17:29                   ` Christopher Li
  0 siblings, 0 replies; 13+ messages in thread
From: Christopher Li @ 2010-03-29 17:29 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Josh Triplett, Dan Carpenter, linux-sparse

On Mon, Mar 29, 2010 at 9:46 AM, Randy Dunlap <rdunlap@xenotime.net> wrote:
> Hi Chris,
>
> Yes, this gets it past the segfault problem.  Thanks.
>
> [Ju:st had a little trouble applying it because it's full of spaces
> instead of tabs.  Once I realized that, it was no problem.]

You can just pull from the sparse chrisl branch. Sorry I did not make it clear.

Proper parsing the struct foo __attribute__() { ...} is more challenging than
this simple fix. But I guess a NULL pointer check shouldn't hurt for now.

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2010-03-29 17:29 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-24 17:41 segfault in sparse snapshot 2010-02-13 Randy Dunlap
2010-03-24 19:36 ` Josh Triplett
     [not found]   ` <4BAA6C4C.8010103@xenotime.net>
2010-03-24 20:34     ` Josh Triplett
2010-03-24 21:01       ` Randy Dunlap
2010-03-24 22:00         ` Josh Triplett
2010-03-24 22:02           ` Randy Dunlap
2010-03-25 10:49       ` Dan Carpenter
2010-03-25 15:46         ` Josh Triplett
2010-03-25 16:28           ` Randy Dunlap
2010-03-25 17:20             ` Christopher Li
2010-03-29  7:50               ` Christopher Li
2010-03-29 16:46                 ` Randy Dunlap
2010-03-29 17:29                   ` Christopher Li

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.