msm: SSR: Fix problems with concurrent SSRs
If one SSR call comes in and queues a work and the work item
starts running and then another SSR call comes in we will end up
with a running work item and a pending work item. The pending
work item will not run until the running work item completes.
With the current code the work item will run to completion and
then the pending work item will run and restart the subsystem
again.
This is wrong since we want to 'short-circuit' the code in this
case and do nothing if multiple SSR calls come in while the
subsystem is in the 'crashed' state. Add state tracking logic so
that we know what part of the restart process a particular
subsystem is in and use it to fix this problem.
Change-Id: I3592a0f9ed777251081a30cc0ee0af9e49fff733
CRs-Fixed: 397848
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
1 file changed