[PATCH v2] drm/mediatek: fix uninitialized symbol
Fei Shao
fshao at chromium.org
Sun Jul 16 20:59:38 PDT 2023
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?).
[1]: commit 0d9eee9118b7 ("drm/mediatek: Add drm ovl_adaptor sub
driver for MT8195")
Regards,
Fei
More information about the Linux-mediatek
mailing list