> So if I understand what you're describing correctly, you're worried about 
 > the DL_NOTE_PHYS_ADDR that will be generated by the underlying driver 
 > when softmac itself does a DL_PHYS_ADDR_REQ in softmac_m_unicst(), right?

Mostly.  I'm worried that we can't always ignore that DL_NOTE_PHYS_ADDR
because the address change may not have been via the GLDv3 (softmac) node
-- but if we always just do a mac_unicst_update(), in the common case the
result will be two DL_NOTE_PHYS_ADDRs (one by the GLDv3 framework, and one
by softmac's mac_unicst_update() call).

 > > On a related note, it seems like some locking is missing from the update
 > > routines.  For instance, mac_unicst_update() currently does a bcopy() of
 > > the new address into mi_addr without holding any locks.  This issue
 > > becomes magnified if we add the proposed checks.  (Maybe Thiru has some
 > > thoughts on this?)
 > 
 > It looks like mi_addr should be protected by mi_data_lock (from looking 
 > at mac_unicst_{get,set}()).  mac_header() would also need to be changed 
 > to hold that lock.

Yep.

-- 
meem

Reply via email to