Hi, I'm experiencing panics like this http://marc.theaimsgroup.com/?l=openbsd-bugs&m=116195951931755&w=2
I'm running 3.8 (generic kernel), the post above is about 4.0 and from what I can tell the relevant code is the same in cvs. What happens is the following: the ppp link goes down which is discovered by the sppp_keepalive timeout handler (invoked in interrupt context in softclock - if i'm not mistaken about the interrupt context here). Subsequently, the sppp interface is taken down and pf tries to adjust the firewall rules. During this, pfr_create_kentry allocates memory, using the non-interrupt-safe pool (which is what it is supposed to do, as it was invoked with intr = 0). pfr_create_kentry is invoked by pfr_set_addrs which doesn't have information about whether it is in an interrupt context or not, and thus always passes intr = 0. So somewhere on the path down from sppp_keepalive to pfr_create_kentry, the information about being in an interrupt context has to be passed down. any opinions on this? I 'fixed' this by ignoring the flag intr and checking for curproc == NULL in pfr_create_kentry... better suggestions are wellcome regards -- jochen
