[PATCH v4] DSPBRIDGE: Fix to avoid possible recursive locking

Deepak Chitriki
2010-02-11T21:54:52Z

Removed NTFY_Notify() in WMD_MSG_Get() to avoid locking contention
as NTFY_Notify() is already invoked in InputMsg().

Cc: Ameya Palande <ameya.palande@nokia.com>
Cc: Omar Ramirez Luna <omar.ramirez@ti.com>
Cc: Nishanth Menon <nm@ti.com>

Signed-off-by: Deepak Chitriki <deepak.chitriki@ti.com>

---
Ref:
v0:http://marc.info/?l=linux-omap&m=126584779011493&w=2
v1:http://marc.info/?l=linux-omap&m=126586224627725&w=2
v2:http://marc.info/?l=linux-omap&m=126591341909124&w=2
v3:http://marc.info/?l=linux-omap&m=126591743315572&w=2
v4:Comment fixes from v3

drivers/dsp/bridge/wmd/msg_sm.c | 10 ++--------
1 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/dsp/bridge/wmd/msg_sm.c b/drivers/dsp/bridge/wmd/msg_sm.c
index 3a275f1..8475e20 100644
--- a/drivers/dsp/bridge/wmd/msg_sm.c
+++ b/drivers/dsp/bridge/wmd/msg_sm.c
@@ -295,11 +295,8 @@ DSP_STATUS WMD_MSG_Get(struct MSG_QUEUE *hMsgQueue,
(struct list_head *)pMsgFrame);
if (LST_IsEmpty(hMsgQueue->msgUsedList))
SYNC_ResetEvent(hMsgQueue->hSyncEvent);
- else {
- NTFY_Notify(hMsgQueue->hNtfy,
- DSP_NODEMESSAGEREADY);
+ else
SYNC_SetEvent(hMsgQueue->hSyncEvent);
- }

fGotMsg = true;
}
@@ -347,11 +344,8 @@ 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)) {
- NTFY_Notify(hMsgQueue->hNtfy,
- DSP_NODEMESSAGEREADY);
+ if (!LST_IsEmpty(hMsgQueue->msgUsedList))
SYNC_SetEvent(hMsgQueue->hSyncEvent);
- }
/* Exit critical section */
(void)SYNC_LeaveCS(hMsgMgr->hSyncCS);
}
--
1.6.3.3