media: mediatek: vcodec: Fix an error handling path in vdec_msg_queue_init()

Message ID efa0d4910998931a2ec9d933117fa71482d7b33a.1689624542.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series media: mediatek: vcodec: Fix an error handling path in vdec_msg_queue_init() |

Commit Message

Christophe JAILLET July 17, 2023, 8:09 p.m. UTC
  All errors go to the error handling path, except this one. Be consistent
and also branch to it.

Fixes: 2f5d0aef37c6 ("media: mediatek: vcodec: support stateless AV1 decoder")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
  

Comments

Dan Carpenter July 18, 2023, 6:58 a.m. UTC | #1
On Mon, Jul 17, 2023 at 10:09:19PM +0200, Christophe JAILLET wrote:
> All errors go to the error handling path, except this one. Be consistent
> and also branch to it.
> 
> Fixes: 2f5d0aef37c6 ("media: mediatek: vcodec: support stateless AV1 decoder")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---

I sent this one a month ago but it hasn't been applied.

https://lore.kernel.org/all/b8948d9a-65bc-4f3f-aa90-60addd064819@moroto.mountain/

regards,
dan carpenter
  
Christophe JAILLET July 18, 2023, 6:39 p.m. UTC | #2
Le 18/07/2023 à 08:58, Dan Carpenter a écrit :
> On Mon, Jul 17, 2023 at 10:09:19PM +0200, Christophe JAILLET wrote:
>> All errors go to the error handling path, except this one. Be consistent
>> and also branch to it.
>>
>> Fixes: 2f5d0aef37c6 ("media: mediatek: vcodec: support stateless AV1 decoder")
>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>> ---
> 
> I sent this one a month ago but it hasn't been applied.
> 
> https://lore.kernel.org/all/b8948d9a-65bc-4f3f-aa90-60addd064819@moroto.mountain/
> 
> regards,
> dan carpenter
> 
> 

Hi Dan,

your patch is better than mine.
Less verbose and more complete.

CJ
  
Hans Verkuil Aug. 7, 2023, 10:52 a.m. UTC | #3
Hi Christophe,

This no longer applies after some major rework of the driver from Yunfei that
was merged to our media_stage tree.

Can you rebase this patch (if it is even still relevant)?

Thanks,

	Hans

On 17/07/2023 22:09, Christophe JAILLET wrote:
> All errors go to the error handling path, except this one. Be consistent
> and also branch to it.
> 
> Fixes: 2f5d0aef37c6 ("media: mediatek: vcodec: support stateless AV1 decoder")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
>  drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c b/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
> index 04e6dc6cfa1d..c6cc2785e0e8 100644
> --- a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
> +++ b/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
> @@ -338,14 +338,16 @@ int vdec_msg_queue_init(struct vdec_msg_queue *msg_queue,
>  			err = mtk_vcodec_mem_alloc(ctx, &lat_buf->rd_mv_addr);
>  			if (err) {
>  				mtk_v4l2_err("failed to allocate rd_mv_addr buf[%d]", i);
> -				return -ENOMEM;
> +				err = -ENOMEM;
> +				goto mem_alloc_err;
>  			}
>  
>  			lat_buf->tile_addr.size = VDEC_LAT_TILE_SZ;
>  			err = mtk_vcodec_mem_alloc(ctx, &lat_buf->tile_addr);
>  			if (err) {
>  				mtk_v4l2_err("failed to allocate tile_addr buf[%d]", i);
> -				return -ENOMEM;
> +				err = -ENOMEM;
> +				goto mem_alloc_err;
>  			}
>  		}
>
  

Patch

diff --git a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c b/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
index 04e6dc6cfa1d..c6cc2785e0e8 100644
--- a/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
+++ b/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c
@@ -338,14 +338,16 @@  int vdec_msg_queue_init(struct vdec_msg_queue *msg_queue,
 			err = mtk_vcodec_mem_alloc(ctx, &lat_buf->rd_mv_addr);
 			if (err) {
 				mtk_v4l2_err("failed to allocate rd_mv_addr buf[%d]", i);
-				return -ENOMEM;
+				err = -ENOMEM;
+				goto mem_alloc_err;
 			}
 
 			lat_buf->tile_addr.size = VDEC_LAT_TILE_SZ;
 			err = mtk_vcodec_mem_alloc(ctx, &lat_buf->tile_addr);
 			if (err) {
 				mtk_v4l2_err("failed to allocate tile_addr buf[%d]", i);
-				return -ENOMEM;
+				err = -ENOMEM;
+				goto mem_alloc_err;
 			}
 		}