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

Ameya Palande
2010-02-11T22:20:51Z

On Thu, 2010-02-11 at 22:54 +0100, ext Deepak Chitriki wrote:
> 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>

Acked-by: Ameya Palande <ameya.palande@nokia.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);
> }