[EMAIL PROTECTED] wrote:
 > 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.

I keep running into this myself, and it's _always_ because dhcpagent holds the DLPI device open. Unplumbing IP doesn't cause dhcpagent to go away, it needs to be killed manually. Paul, was dhcpagent still running?

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

Reply via email to