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