drm: of: always initialize panel in drm_of_find_panel_or_bridge()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 25 Sep 2017 10:30:38 +0000 (13:30 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Sat, 30 Sep 2017 23:30:01 +0000 (01:30 +0200)
The callers expect "panel" to be initialized, but that isn't true if we
return -ENODEV.  It causes bugs like:

    drivers/gpu/drm/tve200/tve200_drv.c:83 tve200_modeset_init()
    error: uninitialized symbol 'panel'.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20170925103038.lvr5msjvekwczctn@mwanda
drivers/gpu/drm/drm_of.c

index 8dafbdf..4c191c0 100644 (file)
@@ -233,6 +233,8 @@ int drm_of_find_panel_or_bridge(const struct device_node *np,
 
        if (!panel && !bridge)
                return -EINVAL;
+       if (panel)
+               *panel = NULL;
 
        remote = of_graph_get_remote_node(np, port, endpoint);
        if (!remote)