Module Name: src Committed By: ozaki-r Date: Tue Mar 6 07:20:41 UTC 2018
Modified Files: src/sys/netinet: in.c src/sys/netinet6: in6.c Log Message: Add assertions We must not destroy llentries holding mbufs. To generate a diff of this commit: cvs rdiff -u -r1.219 -r1.220 src/sys/netinet/in.c cvs rdiff -u -r1.260 -r1.261 src/sys/netinet6/in6.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/in.c diff -u src/sys/netinet/in.c:1.219 src/sys/netinet/in.c:1.220 --- src/sys/netinet/in.c:1.219 Sat Feb 24 07:37:09 2018 +++ src/sys/netinet/in.c Tue Mar 6 07:20:41 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: in.c,v 1.219 2018/02/24 07:37:09 ozaki-r Exp $ */ +/* $NetBSD: in.c,v 1.220 2018/03/06 07:20:41 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.219 2018/02/24 07:37:09 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.220 2018/03/06 07:20:41 ozaki-r Exp $"); #include "arp.h" @@ -1935,6 +1935,8 @@ static void in_lltable_destroy_lle(struct llentry *lle) { + KASSERT(lle->la_numheld == 0); + LLE_WUNLOCK(lle); LLE_LOCK_DESTROY(lle); kmem_intr_free(lle, sizeof(*lle)); Index: src/sys/netinet6/in6.c diff -u src/sys/netinet6/in6.c:1.260 src/sys/netinet6/in6.c:1.261 --- src/sys/netinet6/in6.c:1.260 Sat Feb 24 07:37:09 2018 +++ src/sys/netinet6/in6.c Tue Mar 6 07:20:41 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: in6.c,v 1.260 2018/02/24 07:37:09 ozaki-r Exp $ */ +/* $NetBSD: in6.c,v 1.261 2018/03/06 07:20:41 ozaki-r Exp $ */ /* $KAME: in6.c,v 1.198 2001/07/18 09:12:38 itojun Exp $ */ /* @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.260 2018/02/24 07:37:09 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.261 2018/03/06 07:20:41 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -2403,6 +2403,8 @@ static void in6_lltable_destroy_lle(struct llentry *lle) { + KASSERT(lle->la_numheld == 0); + LLE_WUNLOCK(lle); LLE_LOCK_DESTROY(lle); kmem_intr_free(lle, sizeof(struct in6_llentry));