Date: Sun, 21 Dec 1997 16:25:15 -0500 (EST) From: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) Cc: freebsd-current@FreeBSD.ORG Subject: Re: panics when stopping pppd Message-ID: <199712212125.QAA05766@khavrinen.lcs.mit.edu> In-Reply-To: <199712211016.LAA00416@uriah.heep.sax.de> References: <19971215020638.WG24374@@> <199712151524.KAA08128@khavrinen.lcs.mit.edu> <199712211016.LAA00416@uriah.heep.sax.de>
next in thread | previous in thread | raw e-mail | index | archive | help
<<On Sun, 21 Dec 1997 11:16:36 +0100 (MET), j@uriah.heep.sax.de (J Wunsch) said:
> Any news on this front? I'm also suffering from that problem, the
> kernel always panics at the very same (totally invalid) %eip address.
I forgot where we were going with this.... In in_ifadownkill(), where
it says:
if (rt->rt_ifa == ap->ifa && !(rt->rt_flags & RTF_STATIC)) {
err = rtrequest(RTM_DELETE, (struct sockaddr *)rt_key(rt),
rt->rt_gateway, rt_mask(rt), rt->rt_flags, 0);
if (err) {
log(LOG_WARNING, "in_ifadownkill: error %d\n", err);
}
}
You might try adding the following before the call to rtrequest():
/*
* We need to disable the automatic prune that happens
* in this case in rtrequest() because it will blow
* away the pointers that rn_walktree() needs in order
* continue our descent. We will end up deleting all
* the routes that rtrequest() would have in any case,
* so that behavior is not needed there.
*/
rt->rt_flags &= ~RTF_PRCLONING;
All this RTF_PRCLONING stuff really sucks, and is due for a complete
rewrite from the top. Maybe if I can take some time off this holiday
break...
-GAWollman
--
Garrett A. Wollman | O Siem / We are all family / O Siem / We're all the same
wollman@lcs.mit.edu | O Siem / The fires of freedom
Opinions not those of| Dance in the burning flame
MIT, LCS, CRS, or NSA| - Susan Aglukark and Chad Irschick
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712212125.QAA05766>
