> But note mac_start() will be moved to be part of DL_BIND_REQ processing soon
> (as part of the Clearview softmac fast-path work). In my opinion, mac_start()
> should have been called as the result of DL_BIND_REQ, as only from then on,
> the driver is allowed to transfer data.
>
> So my question changes to: Is it possible to move mac_prop_load() call from
> mac_start() to mac_open()?
I tried this and I'm getting a deadlock between the two threads:
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.
-Artem