[PATCH v2] drm/mediatek: fix uninitialized symbol

CK Hu (胡俊光) ck.hu at mediatek.com
Thu Jul 20 00:52:40 PDT 2023


Hi, Fei:

On Mon, 2023-07-17 at 11:59 +0800, Fei Shao wrote:
>  	 
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>  Hi CK,
> 
> On Fri, Jul 14, 2023 at 5:27 PM CK Hu (胡俊光) <ck.hu at mediatek.com>
> wrote:
> >
> > Hi, Nancy:
> >
> > On Fri, 2023-04-21 at 10:16 +0800, Nancy.Lin wrote:
> snip
> >
> > In line 566, the statement is
> >
> > if (nodo) {
> >         comp_pdev = ...
> > }
> >
> > The comment says that only ovl_adaptoer has no device node, so the
> > checking should be
> >
> > if (type != MTK_DISP_OVL_ADAPTOR) {
> >         comp_pdev = ...
> > }
> >
> > and later it would return when type = MTK_DISP_OVL_ADAPTOR,
> > so there would be no problem of uninitialized symbol.
> 
> That sounds fair, but IIUC what Nancy tries to resolve here is the
> false-positive Smatch warning.
> How about this: given the `if (node)` block was exclusively added for
> ovl_adaptor in [1], plus the init function will immediately return
> after that in this case, it should be safe to do the following
> 
> ```
> /* Not all drm components have a DTS device node... */
> if (node == NULL)
>     return 0;
> 
> comp_pdev = of_find_device_by_node(node);
> ...
> 
> if (type == MTK_DISP_AAL ||
> ...
> ```
> 
> which is equivalent to adding a `node == NULL` check before [1].
> This should suppress the Smatch warning because `comp_pdev` will be
> (again) unconditionally assigned to something, and the `type ==
> MTK_DISP_OVL_ADAPTOR` line can be dropped also (optional?).

This solution also looks good to me.

Regards,
CK

> 
> [1]: commit 0d9eee9118b7 ("drm/mediatek: Add drm ovl_adaptor sub
> driver for MT8195")
> 
> Regards,
> Fei


More information about the Linux-mediatek mailing list