As part of the last interface down, driver starts the interface change timer to close the modules of 15seconds, if there is no request to use the interfaces from upper layer during this time the timer expiers and closes modules. There can be SSR/PDR triggered in the different context which during shutdown tries to call the respective module notifiers which can be purged/freed in the timer context. Synchronize the interface change timer callback with the shutdown using the interface change timer lock. Following steps are taken to make sure one thread is completed before other thread starts execution: * Set the respective flag of recovery inprogress or fw_down so that access to firmware is blocked. * Take the interface change lock, so if the timer callback is running it will complete the closing the modulkes, or if the uevent gets the lock it completes the calling notifiers and purges the same. * Release the interface change lock. Change-Id: I1d7f62cd0ce7268cc9a5bda2a72dae384b70a6e2 CRs-Fixed: 2100846 |
||
---|---|---|
.. | ||
bmi | ||
cds | ||
dp | ||
hdd | ||
mac | ||
pld | ||
sap | ||
sme | ||
wma |