<pre>
Hi, Jason:
On Fri, 2023-07-28 at 00:41 +0800, Jason-JH.Lin wrote:
> Add checking the length of each data path before assigning drm
> private
> data into all_drm_priv array.
Reviewed-by: CK Hu <ck.hu@mediatek.com>
>
> Fixes: 1ef7ed48356c ("drm/mediatek: Modify mediatek-drm for mt8195
> multi mmsys support")
> Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com>
> ---
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index 249c9fd6347e..d2fb1fb4e682 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -351,6 +351,7 @@ static bool mtk_drm_get_all_drm_priv(struct
> device *dev)
> {
> struct mtk_drm_private *drm_priv = dev_get_drvdata(dev);
> struct mtk_drm_private *all_drm_priv[MAX_CRTC];
> +struct mtk_drm_private *temp_drm_priv;
> struct device_node *phandle = dev->parent->of_node;
> const struct of_device_id *of_id;
> struct device_node *node;
> @@ -373,9 +374,18 @@ static bool mtk_drm_get_all_drm_priv(struct
> device *dev)
> if (!drm_dev || !dev_get_drvdata(drm_dev))
> continue;
>
> -all_drm_priv[cnt] = dev_get_drvdata(drm_dev);
> -if (all_drm_priv[cnt] && all_drm_priv[cnt]-
> >mtk_drm_bound)
> -cnt++;
> +temp_drm_priv = dev_get_drvdata(drm_dev);
> +if (temp_drm_priv) {
> +if (temp_drm_priv->mtk_drm_bound)
> +cnt++;
> +
> +if (temp_drm_priv->data->main_len)
> +all_drm_priv[0] = temp_drm_priv;
> +else if (temp_drm_priv->data->ext_len)
> +all_drm_priv[1] = temp_drm_priv;
> +else if (temp_drm_priv->data->third_len)
> +all_drm_priv[2] = temp_drm_priv;
> +}
> }
>
> if (drm_priv->data->mmsys_dev_num == cnt) {
</pre><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ********************
The information contained in this e-mail message (including any
attachments) may be confidential, proprietary, privileged, or otherwise
exempt from disclosure under applicable laws. It is intended to be
conveyed only to the designated recipient(s). Any use, dissemination,
distribution, printing, retaining or copying of this e-mail (including its
attachments) by unintended recipient(s) is strictly prohibited and may
be unlawful. If you are not an intended recipient of this e-mail, or believe
that you have received this e-mail in error, please notify the sender
immediately (by replying to this e-mail), delete any and all copies of
this e-mail (including any attachments) from your system, and do not
disclose the content of this e-mail to any other person. Thank you!
</pre><!--}-->