summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2020-08-29 17:58:32 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2020-08-29 17:58:32 -0400
commitfb73c66a697545a0b30fc7bf600217e9f5c301eb (patch)
tree227d5009866f0d88b9b88f0c82713873c3603aa6
parentb9d15f4896469c0cb8ddb6fdc1c1333aa2dbd30f (diff)
downloadlongterm-queue-5.2-fb73c66a697545a0b30fc7bf600217e9f5c301eb.tar.gz
drm: imx: ctxt refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/drm-imx-fix-use-after-free.patch44
1 files changed, 22 insertions, 22 deletions
diff --git a/queue/drm-imx-fix-use-after-free.patch b/queue/drm-imx-fix-use-after-free.patch
index b006c0b5..4c9634c9 100644
--- a/queue/drm-imx-fix-use-after-free.patch
+++ b/queue/drm-imx-fix-use-after-free.patch
@@ -1,4 +1,4 @@
-From ba807c94f67fd64b3051199810d9e4dd209fdc00 Mon Sep 17 00:00:00 2001
+From a8421c86dbb0069ac7b94c83fa63a08442c6de6f Mon Sep 17 00:00:00 2001
From: Philipp Zabel <p.zabel@pengutronix.de>
Date: Thu, 11 Jun 2020 14:43:31 +0200
Subject: [PATCH] drm/imx: fix use after free
@@ -32,10 +32,10 @@ Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
diff --git a/drivers/gpu/drm/imx/dw_hdmi-imx.c b/drivers/gpu/drm/imx/dw_hdmi-imx.c
-index ba4ca17fd4d8..87869b9997a6 100644
+index 06393cd1067d..fb86fb6c67e7 100644
--- a/drivers/gpu/drm/imx/dw_hdmi-imx.c
+++ b/drivers/gpu/drm/imx/dw_hdmi-imx.c
-@@ -209,9 +209,8 @@ static int dw_hdmi_imx_bind(struct device *dev, struct device *master,
+@@ -210,9 +210,8 @@ static int dw_hdmi_imx_bind(struct device *dev, struct device *master,
if (!pdev->dev.of_node)
return -ENODEV;
@@ -47,16 +47,16 @@ index ba4ca17fd4d8..87869b9997a6 100644
match = of_match_node(dw_hdmi_imx_dt_ids, pdev->dev.of_node);
plat_data = match->data;
-@@ -235,8 +234,6 @@ static int dw_hdmi_imx_bind(struct device *dev, struct device *master,
- drm_encoder_helper_add(encoder, &dw_hdmi_imx_encoder_helper_funcs);
- drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
+@@ -237,8 +236,6 @@ static int dw_hdmi_imx_bind(struct device *dev, struct device *master,
+ drm_encoder_init(drm, encoder, &dw_hdmi_imx_encoder_funcs,
+ DRM_MODE_ENCODER_TMDS, NULL);
- platform_set_drvdata(pdev, hdmi);
-
hdmi->hdmi = dw_hdmi_bind(pdev, encoder, plat_data);
/*
-@@ -266,6 +263,14 @@ static const struct component_ops dw_hdmi_imx_ops = {
+@@ -268,6 +265,14 @@ static const struct component_ops dw_hdmi_imx_ops = {
static int dw_hdmi_imx_probe(struct platform_device *pdev)
{
@@ -72,10 +72,10 @@ index ba4ca17fd4d8..87869b9997a6 100644
}
diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
-index 2e38f1a5cf8d..3421043a558d 100644
+index 3e8bece620df..97b78e384183 100644
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
-@@ -275,9 +275,10 @@ static void imx_drm_unbind(struct device *dev)
+@@ -280,9 +280,10 @@ static void imx_drm_unbind(struct device *dev)
drm_kms_helper_poll_fini(drm);
@@ -88,10 +88,10 @@ index 2e38f1a5cf8d..3421043a558d 100644
drm_dev_put(drm);
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
-index 66ea68e8da87..1823af9936c9 100644
+index 383733302280..720f2cc84433 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
-@@ -590,9 +590,8 @@ static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
+@@ -593,9 +593,8 @@ static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
int ret;
int i;
@@ -103,7 +103,7 @@ index 66ea68e8da87..1823af9936c9 100644
imx_ldb->regmap = syscon_regmap_lookup_by_phandle(np, "gpr");
if (IS_ERR(imx_ldb->regmap)) {
-@@ -700,8 +699,6 @@ static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
+@@ -703,8 +702,6 @@ static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
}
}
@@ -112,7 +112,7 @@ index 66ea68e8da87..1823af9936c9 100644
return 0;
free_child:
-@@ -733,6 +730,14 @@ static const struct component_ops imx_ldb_ops = {
+@@ -736,6 +733,14 @@ static const struct component_ops imx_ldb_ops = {
static int imx_ldb_probe(struct platform_device *pdev)
{
@@ -128,7 +128,7 @@ index 66ea68e8da87..1823af9936c9 100644
}
diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
-index ee63782c77e9..82d1ee1fb0c8 100644
+index e725af8a0025..64fecd968554 100644
--- a/drivers/gpu/drm/imx/imx-tve.c
+++ b/drivers/gpu/drm/imx/imx-tve.c
@@ -542,9 +542,8 @@ static int imx_tve_bind(struct device *dev, struct device *master, void *data)
@@ -168,10 +168,10 @@ index ee63782c77e9..82d1ee1fb0c8 100644
}
diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3-crtc.c
-index 63c0284f8b3c..2256c9789fc2 100644
+index c436a28d50e4..f3df21880140 100644
--- a/drivers/gpu/drm/imx/ipuv3-crtc.c
+++ b/drivers/gpu/drm/imx/ipuv3-crtc.c
-@@ -438,21 +438,13 @@ static int ipu_drm_bind(struct device *dev, struct device *master, void *data)
+@@ -434,21 +434,13 @@ static int ipu_drm_bind(struct device *dev, struct device *master, void *data)
struct ipu_client_platformdata *pdata = dev->platform_data;
struct drm_device *drm = data;
struct ipu_crtc *ipu_crtc;
@@ -196,7 +196,7 @@ index 63c0284f8b3c..2256c9789fc2 100644
}
static void ipu_drm_unbind(struct device *dev, struct device *master,
-@@ -474,6 +466,7 @@ static const struct component_ops ipu_crtc_ops = {
+@@ -470,6 +462,7 @@ static const struct component_ops ipu_crtc_ops = {
static int ipu_drm_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -204,7 +204,7 @@ index 63c0284f8b3c..2256c9789fc2 100644
int ret;
if (!dev->platform_data)
-@@ -483,6 +476,12 @@ static int ipu_drm_probe(struct platform_device *pdev)
+@@ -479,6 +472,12 @@ static int ipu_drm_probe(struct platform_device *pdev)
if (ret)
return ret;
@@ -218,10 +218,10 @@ index 63c0284f8b3c..2256c9789fc2 100644
}
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
-index ac916c84a631..622eabe9efb3 100644
+index 1a76de1e8e7b..487ba3b176d3 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
-@@ -326,9 +326,8 @@ static int imx_pd_bind(struct device *dev, struct device *master, void *data)
+@@ -205,9 +205,8 @@ static int imx_pd_bind(struct device *dev, struct device *master, void *data)
u32 bus_format = 0;
const char *fmt;
@@ -233,7 +233,7 @@ index ac916c84a631..622eabe9efb3 100644
edidp = of_get_property(np, "edid", &imxpd->edid_len);
if (edidp)
-@@ -359,8 +358,6 @@ static int imx_pd_bind(struct device *dev, struct device *master, void *data)
+@@ -237,8 +236,6 @@ static int imx_pd_bind(struct device *dev, struct device *master, void *data)
if (ret)
return ret;
@@ -242,7 +242,7 @@ index ac916c84a631..622eabe9efb3 100644
return 0;
}
-@@ -382,6 +379,14 @@ static const struct component_ops imx_pd_ops = {
+@@ -260,6 +257,14 @@ static const struct component_ops imx_pd_ops = {
static int imx_pd_probe(struct platform_device *pdev)
{