mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-31 11:01:19 +00:00
Before this change, the current task id was cached in dcrypto_init() if it hadn't already been called. This resulted in the task id of the first caller to dcrypto_init() being cached until reset. The cached task id was used when generating notifications that hardware crypto operations were complete. This was fine as long as the task that invoked dcrypto_init() was also the task that invoked dcrypto_call(). If this wasn't the case, the task that invoked dcrypto_init() would be notified of an event it wasn't expecting and the task that invoked dcrypto_call() would not be notified and would time out. This change locks a mutex and then caches the current task id in dcrypto_call() before invoking the hardware operation so that the correct task will be notified when the operation has completed. BRANCH=none BUG=none TEST=make -j buildall Change-Id: I30a920d85359cc990d77c88b1607bbe4cf674206 Reviewed-on: https://chromium-review.googlesource.com/522350 Commit-Ready: Carl Hamilton <carlh@chromium.org> Tested-by: Marius Schilder <mschilder@chromium.org> Tested-by: Carl Hamilton <carlh@chromium.org> Reviewed-by: Marius Schilder <mschilder@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>