msm: ipc: Serialize SMD XPRT CLOSE and OPEN events
When a remote subsystem resets, IPC Router's SMD XPRT Layer queues a CLOSE event. When the concerned subsytem powers up and the channel is reopened, SMD XPRT Layer queues a OPEN event. When the remote subsytem resets and powers up quickly, the following race condition exists: a) IPC Router is scheduled out while handling the CLOSE event, leaving a stale XPRT b) IPC Router's SMD XPRT Layer queues a OPEN event c) IPC Router's SMD XPRT Layer reads a HELLO message, finds a stale XPRT and queues a DATA event on the stale XPRT This race condition causes a kernel panic. Fix this race condition by not handling any other SMD XPRT event until the CLOSE event is complete. CRs-Fixed: 488331 Change-Id: I2283e163413d1896bd6842530b8a6a2b537e22de Signed-off-by:Zaheerulla Meer <zmeer@codeaurora.org> Signed-off-by:
Sridhar Gujje <sgujje@codeaurora.org>
Loading
Please sign in to comment