> 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
