[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