panic: assertion: !IS_SERIALIZED((s)) in lwkt_serialize_enter
Sepherosa Ziehau
sepherosa at gmail.com
Tue May 27 18:36:32 PDT 2008
On Wed, May 28, 2008 at 6:08 AM, Matthew Dillon
<dillon at apollo.backplane.com> wrote:
> I got this panic while messing around with the TAP interface on a
> recent HEAD.
>
> I'm not quite sure what the state of the TAP interfaces was when
> it occured. I had three of them active, plus a bridge with one
> of them attached (but I don't think the bridge is related to the
> crash).
>
> In anycase, I've placed the kernel and vmcore in ~dillon/crash/*.17 on
> leaf.
Please test the attached patch. It should be able to fix the panic.
I will take a close look at arp code, when I am back home.
Best Regards,
sephe
--
Live Free or Die
Index: if_ether.c
===================================================================
RCS file: /dcvs/src/sys/netinet/if_ether.c,v
retrieving revision 1.46
diff -u -r1.46 if_ether.c
--- if_ether.c 14 May 2008 11:59:24 -0000 1.46
+++ if_ether.c 28 May 2008 01:28:02 -0000
@@ -953,9 +953,14 @@
void
arp_ifinit(struct ifnet *ifp, struct ifaddr *ifa)
{
- if (IA_SIN(ifa)->sin_addr.s_addr != INADDR_ANY)
+ ASSERT_SERIALIZED(ifp->if_serializer);
+
+ if (IA_SIN(ifa)->sin_addr.s_addr != INADDR_ANY) {
+ lwkt_serialize_exit(ifp->if_serializer);
arprequest(ifp, &IA_SIN(ifa)->sin_addr, &IA_SIN(ifa)->sin_addr,
IF_LLADDR(ifp));
+ lwkt_serialize_enter(ifp->if_serializer);
+ }
ifa->ifa_rtrequest = arp_rtrequest;
ifa->ifa_flags |= RTF_CLONING;
}
More information about the Bugs
mailing list