LOR in IGMP code
Rui Paulo
rpaulo at me.com
Tue Dec 23 03:03:43 UTC 2014
Hi,
I may look into this, but here it is. HEAD as of this week.
lock order reversal:
1st 0xc2be2508 if_addr_lock (if_addr_lock) @ /home/rpaulo/freebsd/sys/netinet/igmp.c:1716
2nd 0xc070d9bc ifnet_rw (ifnet_rw) @ /home/rpaulo/freebsd/sys/net/if.c:243
KDB: stack backtrace:
db_trace_self() at db_trace_self
pc = 0xc0551534 lr = 0xc0233b58 (db_trace_self_wrapper+0x30)
sp = 0xdcfc5a18 fp = 0xdcfc5b30
r10 = 0xc070d9bc
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
pc = 0xc0233b58 lr = 0xc03a2f34 (kdb_backtrace+0x38)
sp = 0xdcfc5b38 fp = 0xdcfc5b40
r4 = 0xc06a7a24 r5 = 0xc05a52a1
r6 = 0xc05c7a76 r7 = 0xc06da464
kdb_backtrace() at kdb_backtrace+0x38
pc = 0xc03a2f34 lr = 0xc03bd7e0 (witness_checkorder+0xe50)
sp = 0xdcfc5b48 fp = 0xdcfc5b98
r4 = 0xc05c8031
witness_checkorder() at witness_checkorder+0xe50
pc = 0xc03bd7e0 lr = 0xc0369114 (__rw_rlock+0x94)
sp = 0xdcfc5ba0 fp = 0xdcfc5bd0
r4 = 0x000000f3 r5 = 0xc05c7a73
r6 = 0xc070d9cc r7 = 0xc070d9bc
r8 = 0xc2be2400 r9 = 0xc0705bfc
r10 = 0x0000001c
__rw_rlock() at __rw_rlock+0x94
pc = 0xc0369114 lr = 0xc042d2f0 (ifnet_byindex+0x28)
sp = 0xdcfc5bd8 fp = 0xdcfc5be8
r4 = 0xc070d9cc r5 = 0x00000003
r6 = 0x00000000 r7 = 0xc0705bc0
r8 = 0xc2be2400 r9 = 0xc0705bfc
r10 = 0x0000001c
ifnet_byindex() at ifnet_byindex+0x28
pc = 0xc042d2f0 lr = 0xc0448bac (igmp_intr+0x18)
sp = 0xdcfc5bf0 fp = 0xdcfc5c40
r4 = 0xc2bbfa00 r5 = 0xc2bbfa00
r6 = 0x00000000
igmp_intr() at igmp_intr+0x18
pc = 0xc0448bac lr = 0xc043a3a4 (netisr_dispatch_src+0xa8)
sp = 0xdcfc5c48 fp = 0xdcfc5c70
r4 = 0x00000002 r5 = 0xc2bbfa00
r6 = 0x00000000 r7 = 0xc0705bc0
r8 = 0xc2be2400 r9 = 0xc0705bfc
r10 = 0x0000001c
netisr_dispatch_src() at netisr_dispatch_src+0xa8
pc = 0xc043a3a4 lr = 0xc043a734 (netisr_dispatch+0x14)
sp = 0xdcfc5c78 fp = 0xdcfc5c78
r4 = 0xc2c27500 r5 = 0xc2bbfa00
r6 = 0x00000000 r7 = 0x00000000
r8 = 0xc2be2400 r9 = 0x00000016
r10 = 0x0000001c
netisr_dispatch() at netisr_dispatch+0x14
pc = 0xc043a734 lr = 0xc04492cc (igmp_v1v2_queue_report+0x1d8)
sp = 0xdcfc5c80 fp = 0xdcfc5ca8
igmp_v1v2_queue_report() at igmp_v1v2_queue_report+0x1d8
pc = 0xc04492cc lr = 0xc0447df0 (igmp_fasttimo+0x3c4)
sp = 0xdcfc5cb0 fp = 0xdcfc5d38
r4 = 0x00000002 r5 = 0xc2c25c00
r6 = 0xc05ca12c r7 = 0xc2acff60
r8 = 0x00000000 r9 = 0xc2c27500
r10 = 0xc070db70
igmp_fasttimo() at igmp_fasttimo+0x3c4
pc = 0xc0447df0 lr = 0xc03da754 (pffasttimo+0x4c)
sp = 0xdcfc5d40 fp = 0xdcfc5d60
r4 = 0xc0677e40 r5 = 0xc0677fb0
r6 = 0xc070d648 r7 = 0xc070d610
r8 = 0xc070d644 r9 = 0x00000096
r10 = 0xc070d600
pffasttimo() at pffasttimo+0x4c
pc = 0xc03da754 lr = 0xc03815a8 (softclock_call_cc+0x138)
sp = 0xdcfc5d68 fp = 0xdcfc5dc0
r4 = 0x00000000 r5 = 0xc07046f8
softclock_call_cc() at softclock_call_cc+0x138
pc = 0xc03815a8 lr = 0xc0381708 (softclock+0x40)
sp = 0xdcfc5dc8 fp = 0xdcfc5dd0
r4 = 0xc070d610 r5 = 0xc070d600
r6 = 0xc2516600 r7 = 0xc05af8e1
r8 = 0x000004be r9 = 0xc251662c
r10 = 0x00000000
softclock() at softclock+0x40
pc = 0xc0381708 lr = 0xc033b9dc (intr_event_execute_handlers+0xb8)
sp = 0xdcfc5dd8 fp = 0xdcfc5df8
r4 = 0xc2859700 r5 = 0xc2859748
intr_event_execute_handlers() at intr_event_execute_handlers+0xb8
pc = 0xc033b9dc lr = 0xc033c32c (ithread_loop+0xa8)
sp = 0xdcfc5e00 fp = 0xdcfc5e38
r4 = 0xc2505ec0 r5 = 0xc297dcc0
r6 = 0xc2859700 r7 = 0xc0669900
r8 = 0xc070d3e4 r9 = 0x00000000
r10 = 0xc05af8e1
ithread_loop() at ithread_loop+0xa8
pc = 0xc033c32c lr = 0xc033931c (fork_exit+0x80)
sp = 0xdcfc5e40 fp = 0xdcfc5e58
r4 = 0xc297dcc0 r5 = 0xc297a6f0
r6 = 0xc033c284 r7 = 0xc2505ec0
r8 = 0xdcfc5e60 r9 = 0x00000000
r10 = 0x00000000
fork_exit() at fork_exit+0x80
pc = 0xc033931c lr = 0xc0553284 (swi_exit)
sp = 0xdcfc5e60 fp = 0x00000000
r4 = 0xc033c284 r5 = 0xc2505ec0
r6 = 0x00000000 r7 = 0x00000000
r8 = 0x00000000
swi_exit() at swi_exit
pc = 0xc0553284 lr = 0xc0553284 (swi_exit)
sp = 0xdcfc5e60 fp = 0x00000000
--
Rui Paulo
More information about the freebsd-net
mailing list