All of lore.kernel.org
 help / color / mirror / Atom feed
From: Omar Ramirez Luna <omar.ramirez@ti.com>
To: "Guzman Lugo, Fernando" <x0095840@ti.com>
Cc: linux-omap <linux-omap@vger.kernel.org>,
	Hiroshi Doyu <Hiroshi.DOYU@nokia.com>,
	Ameya Palande <ameya.palande@nokia.com>,
	Felipe Contreras <felipe.contreras@nokia.com>
Subject: Re: DSPBRIDGE: Reclaim all pending buffer on resource cleanup
Date: Tue, 16 Feb 2010 12:12:46 -0600	[thread overview]
Message-ID: <4B7AE01E.4060100@ti.com> (raw)
In-Reply-To: <496565EC904933469F292DDA3F1663E602AA6587BF@dlee06.ent.ti.com>

Hi,

On 2/8/2010 4:20 PM, Guzman Lugo, Fernando wrote:
>  From 727c83cd8b7e4aca51b214412eaa1b95cde6e4ea Mon Sep 17 00:00:00 2001
> From: Fernando Guzman Lugo<x0095840@ti.com>
> Date: Tue, 2 Feb 2010 20:38:10 -0600
> Subject: [PATCH] DSPBRIDGE: Reclaim all pending buffer on resource cleanup
>
> Before in case of pending buffer while we try to close
> a stream, it was doing only one reclaim, in the case there
> were more pending buffer the second STRM_Close would also
> fail, now all the pending buffers are reclaim.
>
> Signed-off-by: Fernando Guzman Lugo<x0095840@ti.com>
> ---

Shouldn't this be like?
Patch 1: Fix
Patch 2: code enhancement

that said, isn't this missing a STRM_Close? (look below)

>   drivers/dsp/bridge/rmgr/drv.c |   37 ++++++++++++++++---------------------
>   1 files changed, 16 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/dsp/bridge/rmgr/drv.c b/drivers/dsp/bridge/rmgr/drv.c
> index edd8e97..660f375 100644
> --- a/drivers/dsp/bridge/rmgr/drv.c
> +++ b/drivers/dsp/bridge/rmgr/drv.c
> @@ -458,40 +458,35 @@ static DSP_STATUS  DRV_ProcFreeSTRMRes(HANDLE hPCtxt)
>   {
>   	struct PROCESS_CONTEXT *pCtxt = (struct PROCESS_CONTEXT *)hPCtxt;
>   	DSP_STATUS status = DSP_SOK;
> -	DSP_STATUS status1 = DSP_SOK;
>   	u8 **apBuffer = NULL;
> -	struct STRM_RES_OBJECT *pSTRMList = NULL;
>   	struct STRM_RES_OBJECT *pSTRMRes = NULL;
> +	struct STRM_INFO strm_info;
> +	struct DSP_STREAMINFO user;
>   	u8 *pBufPtr;
>   	u32 ulBytes;
>   	u32 dwArg;
>   	s32 ulBufSize;
>
> -	pSTRMList = pCtxt->pSTRMList;
> -	while (pSTRMList != NULL) {
> -		pSTRMRes = pSTRMList;
> -		pSTRMList = pSTRMList->next;
> -		if (pSTRMRes->uNumBufs != 0) {
> -			apBuffer = MEM_Alloc((pSTRMRes->uNumBufs *
> -					    sizeof(u8 *)), MEM_NONPAGED);
> +	pSTRMRes = pCtxt->pSTRMList;
> +	while (pSTRMRes) {
> +		if (pSTRMRes->uNumBufs) {
> +			apBuffer = MEM_Alloc(pSTRMRes->uNumBufs *
> +					    sizeof(u8 *), MEM_NONPAGED);
> +			if (!apBuffer)
> +				return DSP_EMEMORY;
>   			status = STRM_FreeBuffer(pSTRMRes->hStream, apBuffer,
>   						pSTRMRes->uNumBufs, pCtxt);
>   			MEM_Free(apBuffer);
>   		}
> -		status = STRM_Close(pSTRMRes->hStream, pCtxt);
> -		if (DSP_FAILED(status)) {
> -			if (status == DSP_EPENDING) {
> -				status = STRM_Reclaim(pSTRMRes->hStream,
> -						&pBufPtr,&ulBytes,
> -						     (u32 *)&ulBufSize,&dwArg);
> -				if (DSP_SUCCEEDED(status))
> -					status = STRM_Close(pSTRMRes->hStream,
> -							pCtxt);
> +		strm_info.pUser =&user;
> +		user.uNumberBufsInStream = 0;
> +		STRM_GetInfo(pSTRMRes->hStream,&strm_info, sizeof(strm_info));
> +		while (strm_info.pUser->uNumberBufsInStream--)
> +			STRM_Reclaim(pSTRMRes->hStream,&pBufPtr,&ulBytes,
> +					     (u32 *)&ulBufSize,&dwArg);
>

Here.

> -			}
> -		}
>   	}
> -	return status1;
> +	return status;
>   }
>
>   /* Release all Stream resources and its context

- omar

  reply	other threads:[~2010-02-16 18:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-08 22:20 DSPBRIDGE: Reclaim all pending buffer on resource cleanup Guzman Lugo, Fernando
2010-02-16 18:12 ` Omar Ramirez Luna [this message]
2010-02-16 19:57   ` Guzman Lugo, Fernando

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B7AE01E.4060100@ti.com \
    --to=omar.ramirez@ti.com \
    --cc=Hiroshi.DOYU@nokia.com \
    --cc=ameya.palande@nokia.com \
    --cc=felipe.contreras@nokia.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=x0095840@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.