NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/41918: pppoe BROKEN: panic:kernel diagnostic assertion "!cpu_softintr_p()" ... subr_kmem.c
>Number: 41918
>Category: kern
>Synopsis: pppoe reconnects break with panic
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Aug 22 11:40:00 +0000 2009
>Originator: Frank Kardel
>Release: NetBSD 5.99.15
>Organization:
>Environment:
System: NetBSD pip 5.99.15 NetBSD 5.99.15 (PIP) #0: Sat Aug 22 11:09:52 MEST
2009 kardel@pip:/src/obj.i386/sys/arch/i386/compile/PIP i386
Architecture: i386
Machine: i386
>Description:
pppoe reconnect reliably panic the kernel.
hand copied stack trace (because of kern/41095 still being there):
panic:kernel diagnostic assertion "!cpu_softintr_p()" failed: file
".../sys/kern/subr_kmem.c", line 194
kmem_alloc
kmem_zalloc
in6_ifattach
in6_if_up
sppp_lcp_tlu
sppp_cp_input
sppp_input
pppoe_softintr_handler
softint_dispatch
The violation of calling kmem_zalloc() (likely in
in6_ifaddrs_schedule()) from a softint seems clear. Possibly pppoe shouldn't
call in6_ifattach from softint.
Currently this leads to a reliable panic every 24h with german DSL
providers that think forceful disconnection every 24h is a bright idea.
>How-To-Repeat:
pick a -current (e. g. 20090822060000Z) kernel. fire up pppoe, let it
connect, disconnect network cable, wait for lcp echo to time out (phase=dead),
re-connect network cable, wait for reconnect via pppoe, enjoy panic.
>Fix:
may change the way pppoe handles the re-connect.
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index