This patch fixes possible recursive locking detection.The implementation
in which the spinlock is acquired and released is rectified in WMD_MSG_Get()
to avoid locking contention.
Added SYNC_EnterCS() and SYNC_LeaveCS()in WMD_MSG_Get()function.

Cc: Ameya Palande <[email protected]>
Cc: Omar Ramirez Luna <[email protected]>
Cc: Nishanth Menon <[email protected]>

Signed-off-by: Deepak Chitriki <[email protected]>
---
 drivers/dsp/bridge/wmd/msg_sm.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/dsp/bridge/wmd/msg_sm.c b/drivers/dsp/bridge/wmd/msg_sm.c
index 50201e5..8faf5ad 100644
--- a/drivers/dsp/bridge/wmd/msg_sm.c
+++ b/drivers/dsp/bridge/wmd/msg_sm.c
@@ -300,8 +300,10 @@ DSP_STATUS WMD_MSG_Get(struct MSG_QUEUE *hMsgQueue,
                        if (LST_IsEmpty(hMsgQueue->msgUsedList))
                                SYNC_ResetEvent(hMsgQueue->hSyncEvent);
                        else {
+                               (void)SYNC_LeaveCS(hMsgMgr->hSyncCS);
                                NTFY_Notify(hMsgQueue->hNtfy,
                                        DSP_NODEMESSAGEREADY);
+                               (void)SYNC_EnterCS(hMsgMgr->hSyncCS);
                                SYNC_SetEvent(hMsgQueue->hSyncEvent);
                        }
 
@@ -352,8 +354,10 @@ DSP_STATUS WMD_MSG_Get(struct MSG_QUEUE *hMsgQueue,
                        hMsgQueue->refCount--;
                        /* Reset the event if there are still queued messages */
                        if (!LST_IsEmpty(hMsgQueue->msgUsedList)) {
+                               (void)SYNC_LeaveCS(hMsgMgr->hSyncCS);
                                NTFY_Notify(hMsgQueue->hNtfy,
                                        DSP_NODEMESSAGEREADY);
+                               (void)SYNC_EnterCS(hMsgMgr->hSyncCS);
                                SYNC_SetEvent(hMsgQueue->hSyncEvent);
                        }
                        /* Exit critical section */
-- 
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to