In case of error, the function of_drm_find_bridge() returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test.
Signed-off-by: Wei Yongjun weiyongjun1@huawei.com --- drivers/gpu/drm/mcde/mcde_dsi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/mcde/mcde_dsi.c b/drivers/gpu/drm/mcde/mcde_dsi.c index 7af5ebb0c436..e705afc08c4e 100644 --- a/drivers/gpu/drm/mcde/mcde_dsi.c +++ b/drivers/gpu/drm/mcde/mcde_dsi.c @@ -1073,10 +1073,9 @@ static int mcde_dsi_bind(struct device *dev, struct device *master, panel = NULL;
bridge = of_drm_find_bridge(child); - if (IS_ERR(bridge)) { - dev_err(dev, "failed to find bridge (%ld)\n", - PTR_ERR(bridge)); - return PTR_ERR(bridge); + if (!bridge) { + dev_err(dev, "failed to find bridge\n"); + return -EINVAL; } } }
The of_drm_find_bridge() function returns NULL on error, it doesn't return error pointers so this check doesn't work.
Fixes: 5fc537bfd000 ("drm/mcde: Add new driver for ST-Ericsson MCDE") Signed-off-by: Wei Yongjun weiyongjun1@huawei.com --- v1 - > v2: add fixes and fix the subject --- drivers/gpu/drm/mcde/mcde_dsi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/mcde/mcde_dsi.c b/drivers/gpu/drm/mcde/mcde_dsi.c index 7af5ebb0c436..e705afc08c4e 100644 --- a/drivers/gpu/drm/mcde/mcde_dsi.c +++ b/drivers/gpu/drm/mcde/mcde_dsi.c @@ -1073,10 +1073,9 @@ static int mcde_dsi_bind(struct device *dev, struct device *master, panel = NULL;
bridge = of_drm_find_bridge(child); - if (IS_ERR(bridge)) { - dev_err(dev, "failed to find bridge (%ld)\n", - PTR_ERR(bridge)); - return PTR_ERR(bridge); + if (!bridge) { + dev_err(dev, "failed to find bridge\n"); + return -EINVAL; } } }
On Thu, Apr 30, 2020 at 9:30 AM Wei Yongjun weiyongjun1@huawei.com wrote:
The of_drm_find_bridge() function returns NULL on error, it doesn't return error pointers so this check doesn't work.
Fixes: 5fc537bfd000 ("drm/mcde: Add new driver for ST-Ericsson MCDE") Signed-off-by: Wei Yongjun weiyongjun1@huawei.com
v1 - > v2: add fixes and fix the subject
Already applied v1, no big deal anyways, its a nonurgent fix.
Yours, Linus Walleij
On Tue, Apr 28, 2020 at 4:13 PM Wei Yongjun weiyongjun1@huawei.com wrote:
In case of error, the function of_drm_find_bridge() returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test.
Signed-off-by: Wei Yongjun weiyongjun1@huawei.com
Patch applied! Thanks Wei, sorry for the long delay.
Yours, Linus Walleij
Hi all,
On Tue, 12 May 2020 at 12:49, Linus Walleij linus.walleij@linaro.org wrote:
On Tue, Apr 28, 2020 at 4:13 PM Wei Yongjun weiyongjun1@huawei.com wrote:
In case of error, the function of_drm_find_bridge() returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test.
Signed-off-by: Wei Yongjun weiyongjun1@huawei.com
Patch applied! Thanks Wei, sorry for the long delay.
It would be nice if of_drm_find_bridge and of_drm_find_panel were consistent - either return NULL or an ERR_PTR. Otherwise the next person using them is likely to get it wrong.
-Emil
dri-devel@lists.freedesktop.org