Re: HEADS UP: svn commit: r186107 - head/sys/net80211

From: Sam Leffler <sam_at_freebsd.org>
Date: Mon, 15 Dec 2008 12:54:10 -0800
Paul B. Mahol wrote:
> On 12/15/08, Sam Leffler <sam_at_freebsd.org> wrote:
>   
>> Note this requires ifconfig be rebuilt after.  It'd be good for someone
>> to look at api changes to break this dependency w/ user mode.
>>     
>
> I got double faults when destroying vap (after use), maybe it is not
> net80211 related
> but I will post output anyway.
>
>   
This is an arp-v2 issue.  Patch attached that fixes it for me.

    Sam


Index: netinet/in.c
===================================================================
--- netinet/in.c	(revision 186132)
+++ netinet/in.c	(working copy)
_at__at_ -1060,6 +1060,8 _at__at_
 static void
 in_lltable_free(struct lltable *llt, struct llentry *lle)
 {
+	LLE_WUNLOCK(lle);
+	LLE_LOCK_DESTROY(lle);
 	free(lle, M_LLTABLE);
 }
 
Index: net/if_llatbl.h
===================================================================
--- net/if_llatbl.h	(revision 186132)
+++ net/if_llatbl.h	(working copy)
_at__at_ -81,6 +81,7 _at__at_
 #define	LLE_DOWNGRADE(lle)	rw_downgrade(&(lle)->lle_lock)
 #define	LLE_TRY_UPGRADE(lle)	rw_try_upgrade(&(lle)->lle_lock)
 #define	LLE_LOCK_INIT(lle)	rw_init_flags(&(lle)->lle_lock, "lle", RW_DUPOK)
+#define	LLE_LOCK_DESTROY(lle)	rw_destroy(&(lle)->lle_lock)
 #define	LLE_WLOCK_ASSERT(lle)	rw_assert(&(lle)->lle_lock, RA_WLOCKED)
 
 #define LLE_IS_VALID(lle)	(((lle) != NULL) && ((lle) != (void *)-1))
Index: netinet6/in6.c
===================================================================
--- netinet6/in6.c	(revision 186132)
+++ netinet6/in6.c	(working copy)
_at__at_ -2115,6 +2115,8 _at__at_
 static void
 in6_lltable_free(struct lltable *llt, struct llentry *lle)
 {
+	LLE_WUNLOCK(lle);
+	LLE_LOCK_DESTROY(lle);
 	free(lle, M_LLTABLE);
 }
 
Received on Mon Dec 15 2008 - 19:54:10 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:39 UTC