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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <ameya.palande@xxxxxxxxx>
> Cc: Omar Ramirez Luna <omar.ramirez@xxxxxx>
> Cc: Nishanth Menon <nm@xxxxxx>
> 
> Signed-off-by: Deepak Chitriki <deepak.chitriki@xxxxxx>
> ---
>  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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux