Module Name: src Committed By: christos Date: Wed Sep 2 09:28:13 UTC 2015
Modified Files: src/sys/netinet: if_arp.c Log Message: XXX: Disable KASSERT for now since locking is broken for interface removals. To generate a diff of this commit: cvs rdiff -u -r1.175 -r1.176 src/sys/netinet/if_arp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netinet/if_arp.c diff -u src/sys/netinet/if_arp.c:1.175 src/sys/netinet/if_arp.c:1.176 --- src/sys/netinet/if_arp.c:1.175 Mon Aug 31 04:06:30 2015 +++ src/sys/netinet/if_arp.c Wed Sep 2 05:28:13 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: if_arp.c,v 1.175 2015/08/31 08:06:30 ozaki-r Exp $ */ +/* $NetBSD: if_arp.c,v 1.176 2015/09/02 09:28:13 christos Exp $ */ /*- * Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.175 2015/08/31 08:06:30 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.176 2015/09/02 09:28:13 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_ddb.h" @@ -1428,7 +1428,20 @@ static void arptfree(struct llentry *la) { struct rtentry *rt = la->la_rt; +#ifdef notyet + /* + * This is racy; arptfree() is called without a lock from + * arptimer(), and something can delete the route before + * we get here. This happens for me when a ppp interface + * gets deleted. + */ KASSERT(rt != NULL); +#else + if (rt == NULL) { + aprint_error("%s: llentry without rt\n", __func__); + return; + } +#endif if (la->la_rt != NULL) { rtfree(la->la_rt);