> dladm create-aggr -d bge0 1
 > 
 > I got an error saying 'device busy'. Now bge0 was definitely gone from 
 > ifconfig but from looking at the code it was apparent that when the bge 
 > driver calls mac_register() this has the effect of doing a dls_create() 
 > and presumably, therefore, the aggr driver finds that a dls reference 
 > to the mac interface exists and thus refuses to use it.

That doesn't sound right to me.  When the `ifconfig bge0 unplumb' occurs,
we should go through dld_str_detach() -> dls_close() -> dls_active_clear()
-> mac_active_clear() which will clear mi_activelink on the underlying
mac_t.  At this point, another mac client (aggr) should be able to use the
underlying mac_t without restriction.  (Otherwise, it is restricted to
"passive" DLPI operations -- unless it issues a DL_PASSIVE_REQ, as per
dlpi(7P)).

However, it seems there must be a bug here -- or there was another DLS
client holding open an instance and keeping mi_activelink set.

Can you reproduce it?

-- 
meem
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to