> 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

Reply via email to