openwrt/target/linux/layerscape/patches-5.4/805-display-0046-MLK-22171-drm-imx-Avoid-leaking-dangling-pointer-dev.patch
Adrian Schmutzler cf7c101135 layerscape: remove useless pairs of kernel patches
The layerscape kernel patches appears to be just some uncleaned local
development tree, where patches are sometimes directly followed by
their revert. While this does not seem a problem in the first place,
it becomes incredibly unpleasant when the upstream kernel changes in
the relevant areas and requires rebase.

This removes all these patch-revert pairs and refreshs the rest.

It removes about 44000 lines of entirely useless code.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-20 14:19:39 +02:00

38 lines
1.1 KiB
Diff

From 98917e88ec975eee0194ca011479e507029009ae Mon Sep 17 00:00:00 2001
From: Liu Ying <victor.liu@nxp.com>
Date: Tue, 30 Jul 2019 13:13:16 +0800
Subject: [PATCH] MLK-22171 drm/imx: Avoid leaking dangling pointer
dev->driver_data to PM ops
In case ->bind() fails, we should avoid leaking dangling pointer
dev->driver_data which is set by dev_set_drvdata(), otherwise
it would be leaked, and seen/dereferenced by PM ops, thus hang
happens. Moving dev_set_drvdata() down just before ->bind()
successfully returns may address this issue.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
---
drivers/gpu/drm/imx/imx-drm-core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
@@ -239,8 +239,6 @@ static int imx_drm_bind(struct device *d
if (ret)
goto err_kms;
- dev_set_drvdata(dev, drm);
-
/* Now try and bind all our sub-components */
ret = component_bind_all(dev, drm);
if (ret)
@@ -266,6 +264,8 @@ static int imx_drm_bind(struct device *d
drm_fbdev_generic_setup(drm, legacyfb_depth);
+ dev_set_drvdata(dev, drm);
+
return 0;
err_poll_fini: