[PATCH v6 13/13] media: platform: mtk-mdp3: fix uninitialized variable in mdp_path_config()

Moudy Ho posted 13 patches 12 months ago
There is a newer version of this series
[PATCH v6 13/13] media: platform: mtk-mdp3: fix uninitialized variable in mdp_path_config()
Posted by Moudy Ho 12 months ago
Fix the build warnings that were detected by the linux-media
build scripts tool:

drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:
	In function 'mdp_path_config.isra':
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:443:51:
	warning: 'ctx' may be used uninitialized [-Wmaybe-uninitialized]
  443 |                    out = CFG_COMP(MT8195, ctx->param, outputs[0]);
      |                                           ~~~^~~~~~~
drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h:137:25: note:
	in definition of macro 'CFG_COMP'
  137 |         (IS_ERR_OR_NULL(comp) ? 0 : _CFG_COMP(plat, comp, mem))
      |                         ^~~~
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:396:30:
	note: 'ctx' was declared here
  396 |         struct mdp_comp_ctx *ctx;
      |

Fixes: 61890ccaefaf ("media: platform: mtk-mdp3: add MediaTek MDP3 driver")
Signed-off-by: Moudy Ho <moudy.ho@mediatek.com>
---
 drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
index 15a0b944745e..4a8d941178aa 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
@@ -436,13 +436,13 @@ static int mdp_path_config(struct mdp_dev *mdp, struct mdp_cmdq_cmd *cmd,
 		if (mdp_cfg_comp_is_dummy(path->mdp_dev, inner_id))
 			continue;
 
+		ctx = &path->comps[index];
 		if (CFG_CHECK(MT8183, p_id))
 			out = CFG_COMP(MT8183, ctx->param, outputs[0]);
 		else if (CFG_CHECK(MT8195, p_id))
 			out = CFG_COMP(MT8195, ctx->param, outputs[0]);
 
 		compose = path->composes[out];
-		ctx = &path->comps[index];
 		ret = call_op(ctx, config_frame, cmd, compose);
 		if (ret)
 			return ret;
-- 
2.18.0
Re: [PATCH v6 13/13] media: platform: mtk-mdp3: fix uninitialized variable in mdp_path_config()
Posted by Hans Verkuil 11 months, 3 weeks ago
On 22/09/2023 09:41, Moudy Ho wrote:
> Fix the build warnings that were detected by the linux-media
> build scripts tool:
> 
> drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:
> 	In function 'mdp_path_config.isra':
> drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:443:51:
> 	warning: 'ctx' may be used uninitialized [-Wmaybe-uninitialized]
>   443 |                    out = CFG_COMP(MT8195, ctx->param, outputs[0]);
>       |                                           ~~~^~~~~~~
> drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h:137:25: note:
> 	in definition of macro 'CFG_COMP'
>   137 |         (IS_ERR_OR_NULL(comp) ? 0 : _CFG_COMP(plat, comp, mem))
>       |                         ^~~~
> drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:396:30:
> 	note: 'ctx' was declared here
>   396 |         struct mdp_comp_ctx *ctx;
>       |
> 
> Fixes: 61890ccaefaf ("media: platform: mtk-mdp3: add MediaTek MDP3 driver")
> Signed-off-by: Moudy Ho <moudy.ho@mediatek.com>
> ---
>  drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
> index 15a0b944745e..4a8d941178aa 100644
> --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
> +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
> @@ -436,13 +436,13 @@ static int mdp_path_config(struct mdp_dev *mdp, struct mdp_cmdq_cmd *cmd,
>  		if (mdp_cfg_comp_is_dummy(path->mdp_dev, inner_id))
>  			continue;
>  
> +		ctx = &path->comps[index];
>  		if (CFG_CHECK(MT8183, p_id))
>  			out = CFG_COMP(MT8183, ctx->param, outputs[0]);
>  		else if (CFG_CHECK(MT8195, p_id))
>  			out = CFG_COMP(MT8195, ctx->param, outputs[0]);
>  
>  		compose = path->composes[out];
> -		ctx = &path->comps[index];
>  		ret = call_op(ctx, config_frame, cmd, compose);
>  		if (ret)
>  			return ret;

Hmm, this patch really should be a separate patch on top of the media
staging branch: it is wrong there as well, except you don't get a build
warning. Other changes in this patch series caused this warning to appear,
but the actual bug is already present in the current staging code.

Regards,

	Hans
Re: [PATCH v6 13/13] media: platform: mtk-mdp3: fix uninitialized variable in mdp_path_config()
Posted by Moudy Ho (何宗原) 11 months, 3 weeks ago
On Mon, 2023-10-02 at 12:57 +0200, Hans Verkuil wrote:
>  	 
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>  On 22/09/2023 09:41, Moudy Ho wrote:
> > Fix the build warnings that were detected by the linux-media
> > build scripts tool:
> > 
> > drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:
> > In function 'mdp_path_config.isra':
> > drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:443:51:
> > warning: 'ctx' may be used uninitialized [-Wmaybe-uninitialized]
> >   443 |                    out = CFG_COMP(MT8195, ctx->param,
> outputs[0]);
> >       |                                           ~~~^~~~~~~
> > drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h:137:25: note:
> > in definition of macro 'CFG_COMP'
> >   137 |         (IS_ERR_OR_NULL(comp) ? 0 : _CFG_COMP(plat, comp,
> mem))
> >       |                         ^~~~
> > drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:396:30:
> > note: 'ctx' was declared here
> >   396 |         struct mdp_comp_ctx *ctx;
> >       |
> > 
> > Fixes: 61890ccaefaf ("media: platform: mtk-mdp3: add MediaTek MDP3
> driver")
> > Signed-off-by: Moudy Ho <moudy.ho@mediatek.com>
> > ---
> >  drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
> b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
> > index 15a0b944745e..4a8d941178aa 100644
> > --- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
> > +++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
> > @@ -436,13 +436,13 @@ static int mdp_path_config(struct mdp_dev
> *mdp, struct mdp_cmdq_cmd *cmd,
> >  if (mdp_cfg_comp_is_dummy(path->mdp_dev, inner_id))
> >  continue;
> >  
> > +ctx = &path->comps[index];
> >  if (CFG_CHECK(MT8183, p_id))
> >  out = CFG_COMP(MT8183, ctx->param, outputs[0]);
> >  else if (CFG_CHECK(MT8195, p_id))
> >  out = CFG_COMP(MT8195, ctx->param, outputs[0]);
> >  
> >  compose = path->composes[out];
> > -ctx = &path->comps[index];
> >  ret = call_op(ctx, config_frame, cmd, compose);
> >  if (ret)
> >  return ret;
> 
> Hmm, this patch really should be a separate patch on top of the media
> staging branch: it is wrong there as well, except you don't get a
> build
> warning. Other changes in this patch series caused this warning to
> appear,
> but the actual bug is already present in the current staging code.
> 
> Regards,
> 
> Hans

Hi Hans,

Thanks for reminding me. I will separate this patc to address the
existing compilation warnings.

Sincerely,
Moudy