HEADS UP: svn commit: r186107 - head/sys/net80211
Sam Leffler
sam at freebsd.org
Mon Dec 15 20:54:11 UTC 2008
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
-------------- next part --------------
Index: netinet/in.c
===================================================================
--- netinet/in.c (revision 186132)
+++ netinet/in.c (working copy)
@@ -1060,6 +1060,8 @@
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)
@@ -81,6 +81,7 @@
#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)
@@ -2115,6 +2115,8 @@
static void
in6_lltable_free(struct lltable *llt, struct llentry *lle)
{
+ LLE_WUNLOCK(lle);
+ LLE_LOCK_DESTROY(lle);
free(lle, M_LLTABLE);
}
More information about the freebsd-current
mailing list