> dls_devnet_open
>    ...
>      softmac_create
>        mac_open
>          mac_prop_load
>            upcall to dlmgmtd
> 
> dlmgmtd
>    ...
>      dld`drv_ioc_phys_attr
>        softmac_hold_device
>          mutex_enter(smac_mutex)
> 
> 
> softmac_create calls mac_open with smac_mutex held, and when upcall 
> handler tries to map linkid to devname, it deadlocks. It seems that 
> mac_open might be a little too early for mac_prop_load.

I wonder if, instead of mac_prop_load() being called from within MAC, it 
could be called from softmac. That is, once softmac_create() is done 
with most of its work, it would mac_prop_load() at the very end.

-Artem

Reply via email to