On Thu, 2 Aug 2012, Gleb Smirnoff wrote:

Author: glebius
Date: Thu Aug  2 13:57:49 2012
New Revision: 238990
URL: http://svn.freebsd.org/changeset/base/238990

Log:
 Fix races between in_lltable_prefix_free(), lla_lookup(),
 llentry_free() and arptimer():

 o Use callout_init_rw() for lle timeout, this allows us safely
   disestablish them.
   - This allows us to simplify the arptimer() and make it
     race safe.
 o Consistently use ifp->if_afdata_lock to lock access to
   linked lists in the lle hashes.
 o Introduce new lle flag LLE_LINKED, which marks an entry that
   is attached to the hash.
   - Use LLE_LINKED to avoid double unlinking via consequent
     calls to llentry_free().
   - Mark lle with LLE_DELETED via |= operation istead of =,
     so that other flags won't be lost.
 o Make LLE_ADDREF(), LLE_REMREF() and LLE_FREE_LOCKED() more
   consistent and provide more informative KASSERTs.

 The patch is a collaborative work of all submitters and myself.

Quoting from 2 year old memory you just introduced a possible deadlock
on tbale (or with that networkstack) teardown adding the extra af_data
write locking to the table walk.

--
Bjoern A. Zeeb                                 You have to have visions!
         Stop bit received. Insert coin for new address family.
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to