2018-05-23 22:05:32

by Tony Lindgren

[permalink] [raw]
Subject: omapdrm regression in v4.17-rc series

Hi all,

I bisected the n900 LCD issue to commit 24aac6011f70 ("drm: omapdrm:
sdi: Allocate the sdi private data structure dynamically"). Reverting
this patch makes LCD work for me again on n900.

Any ideas?

Regards,

Tony


2018-05-24 08:15:34

by Tomi Valkeinen

[permalink] [raw]
Subject: Re: omapdrm regression in v4.17-rc series


On 24/05/18 01:03, Tony Lindgren wrote:
> Hi all,
>
> I bisected the n900 LCD issue to commit 24aac6011f70 ("drm: omapdrm:
> sdi: Allocate the sdi private data structure dynamically"). Reverting
> this patch makes LCD work for me again on n900.
>
> Any ideas?

This should help to get the SDI enabled.

Tomi

From 4e96e6c2dedf366e081331c3825ff6fa8aabd85c Mon Sep 17 00:00:00 2001
From: Tomi Valkeinen <[email protected]>
Date: Thu, 24 May 2018 10:53:24 +0300
Subject: [PATCH] drm/omap: fix NULL deref crash with SDI displays

Fix a NULL deref bug introduced in commit 24aac6011f70 ("drm: omapdrm:
sdi: Allocate the sdi private data structure dynamically").

Signed-off-by: Tomi Valkeinen <[email protected]>
---
drivers/gpu/drm/omapdrm/dss/sdi.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
index 68a40ae26f5b..1e2c931f6acf 100644
--- a/drivers/gpu/drm/omapdrm/dss/sdi.c
+++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
@@ -82,7 +82,7 @@ static int sdi_calc_clock_div(struct sdi_device *sdi, unsigned long pclk,
struct dispc_clock_info *dispc_cinfo)
{
int i;
- struct sdi_clk_calc_ctx ctx = { .sdi = sdi };
+ struct sdi_clk_calc_ctx ctx;

/*
* DSS fclk gives us very few possibilities, so finding a good pixel
@@ -95,6 +95,9 @@ static int sdi_calc_clock_div(struct sdi_device *sdi, unsigned long pclk,
bool ok;

memset(&ctx, 0, sizeof(ctx));
+
+ ctx.sdi = sdi;
+
if (pclk > 1000 * i * i * i)
ctx.pck_min = max(pclk - 1000 * i * i * i, 0lu);
else

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

2018-05-25 00:11:07

by Tony Lindgren

[permalink] [raw]
Subject: Re: omapdrm regression in v4.17-rc series

* Tomi Valkeinen <[email protected]> [180524 08:00]:
>
> On 24/05/18 01:03, Tony Lindgren wrote:
> > Hi all,
> >
> > I bisected the n900 LCD issue to commit 24aac6011f70 ("drm: omapdrm:
> > sdi: Allocate the sdi private data structure dynamically"). Reverting
> > this patch makes LCD work for me again on n900.
> >
> > Any ideas?
>
> This should help to get the SDI enabled.

Thanks yes that fixes it:

Fixes: 24aac6011f70 ("drm: omapdrm: sdi: Allocate the sdi private data
structure dynamically")
Reported-by: Tony Lindgren <[email protected]>
Tested-by: Tony Lindgren <[email protected]>

2018-05-25 02:26:08

by Benoit Parrot

[permalink] [raw]
Subject: Re: omapdrm regression in v4.17-rc series

Reviewed-by: Benoit Parrot <[email protected]>

Tomi Valkeinen <[email protected]> wrote on Thu [2018-May-24 10:58:25 +0300]:
>
> On 24/05/18 01:03, Tony Lindgren wrote:
> > Hi all,
> >
> > I bisected the n900 LCD issue to commit 24aac6011f70 ("drm: omapdrm:
> > sdi: Allocate the sdi private data structure dynamically"). Reverting
> > this patch makes LCD work for me again on n900.
> >
> > Any ideas?
>
> This should help to get the SDI enabled.
>
> Tomi
>
> From 4e96e6c2dedf366e081331c3825ff6fa8aabd85c Mon Sep 17 00:00:00 2001
> From: Tomi Valkeinen <[email protected]>
> Date: Thu, 24 May 2018 10:53:24 +0300
> Subject: [PATCH] drm/omap: fix NULL deref crash with SDI displays
>
> Fix a NULL deref bug introduced in commit 24aac6011f70 ("drm: omapdrm:
> sdi: Allocate the sdi private data structure dynamically").
>
> Signed-off-by: Tomi Valkeinen <[email protected]>
> ---
> drivers/gpu/drm/omapdrm/dss/sdi.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
> index 68a40ae26f5b..1e2c931f6acf 100644
> --- a/drivers/gpu/drm/omapdrm/dss/sdi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
> @@ -82,7 +82,7 @@ static int sdi_calc_clock_div(struct sdi_device *sdi, unsigned long pclk,
> struct dispc_clock_info *dispc_cinfo)
> {
> int i;
> - struct sdi_clk_calc_ctx ctx = { .sdi = sdi };
> + struct sdi_clk_calc_ctx ctx;
>
> /*
> * DSS fclk gives us very few possibilities, so finding a good pixel
> @@ -95,6 +95,9 @@ static int sdi_calc_clock_div(struct sdi_device *sdi, unsigned long pclk,
> bool ok;
>
> memset(&ctx, 0, sizeof(ctx));
> +
> + ctx.sdi = sdi;
> +
> if (pclk > 1000 * i * i * i)
> ctx.pck_min = max(pclk - 1000 * i * i * i, 0lu);
> else
>
> --
> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

2018-05-25 02:28:14

by Tomi Valkeinen

[permalink] [raw]
Subject: Re: omapdrm regression in v4.17-rc series



On 24/05/18 16:54, Tony Lindgren wrote:
> * Tomi Valkeinen <[email protected]> [180524 08:00]:
>>
>> On 24/05/18 01:03, Tony Lindgren wrote:
>>> Hi all,
>>>
>>> I bisected the n900 LCD issue to commit 24aac6011f70 ("drm: omapdrm:
>>> sdi: Allocate the sdi private data structure dynamically"). Reverting
>>> this patch makes LCD work for me again on n900.
>>>
>>> Any ideas?
>>
>> This should help to get the SDI enabled.
>
> Thanks yes that fixes it:
>
> Fixes: 24aac6011f70 ("drm: omapdrm: sdi: Allocate the sdi private data
> structure dynamically")
> Reported-by: Tony Lindgren <[email protected]>
> Tested-by: Tony Lindgren <[email protected]>
>

Thanks, pushed to drm-misc-fixes.

Tomi

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki