All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Kyrie Wu" <kyrie.wu@mediatek.com>
Cc: conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org,
	media-ci@linuxtv.org
Subject: Re: [PATCH v17 12/12] media: mediatek: jpeg: add jpeg smmu sid setting
Date: Tue, 22 Sep 2026 09:34:53 +0000	[thread overview]
Message-ID: <20260922093453.6FCEF1F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260922091530.241762-13-kyrie.wu@mediatek.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] media: mediatek: jpeg: Probe failure UAF due to uncleared array entries in smmu init
- [Low] media: mediatek: jpeg: Missing const on mtk8196_jpegenc_drvdata
--

commit 8c591407e461c7618344fd3592e2e6eabc6f2e56
Author: Kyrie Wu <kyrie.wu@mediatek.com>

media: mediatek: jpeg: add jpeg smmu sid setting
    
Add a configuration to set jpeg dec & enc smmu sid

> diff --git a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
> index 8e96501a4f9fa..bb9bdd9913d94 100644
> --- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
> +++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c
[ ... ]
> @@ -1931,6 +1958,7 @@ static struct mtk_jpeg_variant mtk8196_jpegenc_drvdata = {
>  	.multi_core = true,
>  	.jpeg_worker = mtk_jpegenc_worker,
>  	.support_34bit = true,
> +	.support_smmu = true,
>  };

[Severity: Low]
Is this struct missing the const qualifier?  Without it,
mtk8196_jpegenc_drvdata will be mapped to writable memory instead of
read-only data.

> diff --git a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c
> index 07452249bcb67..3058fdf4f6054 100644
> --- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c
> +++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c
[ ... ]
> @@ -665,6 +684,10 @@ static int mtk_jpegdec_hw_probe(struct platform_device *pdev)
>  	master_dev->reg_decbase[i] = dev->reg_base;
>  	dev->master_dev = master_dev;
>  
> +	ret = mtk_jpegdec_smmu_init(dev);
> +	if (ret)
> +		return ret;
> +
>  	platform_set_drvdata(pdev, dev);
>  	pm_runtime_enable(&pdev->dev);
>  

[Severity: High]
Does this code leave a dangling pointer in master_dev->dec_hw_dev[i] when
mtk_jpegdec_smmu_init() fails?

In mtk_jpegdec_hw_probe(), if mtk_jpegdec_smmu_init() fails during child
probe, it returns an error and devm_kzalloc() will free the dev structure.
However, dev is already stored in the parent's array
(master_dev->dec_hw_dev[i] = dev) and master_dev->hw_index was incremented
just above this snippet.

Can a subsequent job queued to the V4L2 device trigger mtk_jpegdec_worker()
to scan the hardware array and dereference the dangling pointer, causing
a use-after-free?

> diff --git a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c
> index c7954af0eb65a..506a49d1ac04d 100644
> --- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c
> +++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c
[ ... ]
> @@ -388,6 +407,10 @@ static int mtk_jpegenc_hw_probe(struct platform_device *pdev)
>  	master_dev->reg_encbase[i] = dev->reg_base;
>  	dev->master_dev = master_dev;
>  
> +	ret = mtk_jpegenc_smmu_init(dev);
> +	if (ret)
> +		return ret;
> +
>  	platform_set_drvdata(pdev, dev);
>  	pm_runtime_enable(&pdev->dev);
>  

[Severity: High]
Does this code leave a dangling pointer in master_dev->enc_hw_dev[i] when
mtk_jpegenc_smmu_init() fails?

In mtk_jpegenc_hw_probe(), similar to the decode probe above, if
mtk_jpegenc_smmu_init() fails, dev is freed but remains stored in the
parent's array (master_dev->enc_hw_dev[i] = dev) with master_dev->hw_index
already incremented.

Can a subsequent job queued to the V4L2 device trigger mtk_jpegenc_worker()
to dereference this freed pointer?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260922091530.241762-1-kyrie.wu@mediatek.com?part=12

  reply	other threads:[~2026-09-22  9:34 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22  9:15 [PATCH v17 00/12] Enable jpeg enc & dec multi-hardwares for MT8196 Kyrie Wu
2026-09-22  9:15 ` [PATCH v17 01/12] media: mediatek: jpeg: fix jpeg cores' amounts setting Kyrie Wu
2026-09-22  9:28   ` sashiko-bot
2026-09-22  9:15 ` [PATCH v17 02/12] media: mediatek: jpeg: fix jpeg buffer payload size setting Kyrie Wu
2026-09-22  9:27   ` sashiko-bot
2026-09-22 11:40   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 03/12] media: mediatek: jpeg: fix buffer structure size and layout Kyrie Wu
2026-09-22 11:40   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 04/12] media: mediatek: jpeg: Fix buffer completion on multi-core streaming stop Kyrie Wu
2026-09-22  9:27   ` sashiko-bot
2026-09-22 11:40   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 05/12] media: mediatek: jpeg: Fix multi-core clk suspend and resume setting Kyrie Wu
2026-09-22  9:26   ` sashiko-bot
2026-09-22 11:39   ` AngeloGioacchino Del Regno
2026-10-10  6:27     ` Kyrie Wu (吴晗)
2026-09-22  9:15 ` [PATCH v17 06/12] media: mediatek: jpeg: fix buffer state update timing Kyrie Wu
2026-09-22  9:31   ` sashiko-bot
2026-09-22 11:40   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 07/12] media: mediatek: jpeg: fix resolution change event handling in decoder Kyrie Wu
2026-09-22  9:29   ` sashiko-bot
2026-09-22 11:40   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 08/12] media: mediatek: jpeg: fix remove buffer removal timing for multi-core Kyrie Wu
2026-09-22  9:32   ` sashiko-bot
2026-09-22 11:39   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 09/12] media: dt-bindings: mediatek,jpeg: Add mediatek, mt8196-jpgdec compatible Kyrie Wu
2026-09-22 11:39   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 10/12] media: dt-bindings: mediatek,jpeg: Add mediatek, mt8196-jpgenc compatible Kyrie Wu
2026-09-22 11:39   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 11/12] media: mediatek: jpeg: add jpeg compatible Kyrie Wu
2026-09-22 11:39   ` AngeloGioacchino Del Regno
2026-09-22  9:15 ` [PATCH v17 12/12] media: mediatek: jpeg: add jpeg smmu sid setting Kyrie Wu
2026-09-22  9:34   ` sashiko-bot [this message]
2026-09-22 11:39   ` AngeloGioacchino Del Regno
2026-10-10  6:30     ` Kyrie Wu (吴晗)

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=20260922093453.6FCEF1F00893@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kyrie.wu@mediatek.com \
    --cc=media-ci@linuxtv.org \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /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.