Hi Deepak,

On Wed, 2010-02-10 at 02:01 +0100, ext Deepak Chitriki wrote:
> 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 */

Can you explain the need of calling NTFY_Notify() in WMD_MSG_Get()?
I can see that the InputMsg calls NTFY_Notify() already!

Can we get rid of NTFY_Notify() from WMD_MSG_Get() all together?

Cheers,
Ameya.

--
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