Alexey Dobriyan wrote: > FWIW, commit 851a67b825540a8e00c0be3ee25e4627ba8b133b > aka "lockdep: annotate rcu_read_{,un}lock{,_bh}" > causes sparse to trigger internal assertion in quite a few places over > allyesconfig run. > > sparse: flow.c:805: rewrite_parent_branch: Assertion `changed' failed. > > Trimmed down testcase: > > void f(unsigned long ip); > static void g(void) > { > if (1) { > f(({ __label__ x; x: (unsigned long)&&x; })); > } > f(({ __label__ x; x: (unsigned long)&&x; })); > } > > #0 0x4001c410 in __kernel_vsyscall () > (gdb) bt > #0 0x4001c410 in __kernel_vsyscall () > #1 0x40050701 in raise () from /lib/libc.so.6 > #2 0x40051e38 in abort () from /lib/libc.so.6 > #3 0x40049fcc in __assert_fail () from /lib/libc.so.6 > #4 0x08064947 in pack_basic_blocks (ep=0x411a1c6c) at flow.c:812 > #5 0x0805ffbf in linearize_symbol (sym=0x4103ec8c) at linearize.c:2154 > #6 0x080492a3 in main (argc=Cannot access memory at address 0x274d) at sparse.c:266 Thanks for the detailed report. Looking into it now. - Josh Triplett
Attachment:
signature.asc
Description: OpenPGP digital signature
- References:
- sparse breakage triggered by rcu_read_lock() lockdep annotations
- From: Alexey Dobriyan <[email protected]>
- sparse breakage triggered by rcu_read_lock() lockdep annotations
- Prev by Date: New CD/DVD drive - 80-wire cable detection failure
- Next by Date: Re: wait_for_completion_interruptible() changes
- Previous by thread: sparse breakage triggered by rcu_read_lock() lockdep annotations
- Next by thread: Re: sparse breakage triggered by rcu_read_lock() lockdep annotations
- Index(es):