All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/amd/display: fix invalid function table override
@ 2018-07-06 12:22 Christian König
       [not found] ` <20180706122201.34465-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Christian König @ 2018-07-06 12:22 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: mikita.lipski-5C7GfCeVMHo, harry.wentland-5C7GfCeVMHo

Otherwise we try to program hardware with the wrong watermark functions
when multiple DCE generations are installed in one system.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c | 27 ++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
index b235a75355b8..bae752332a9f 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
@@ -741,6 +741,29 @@ static struct mem_input_funcs dce_mi_funcs = {
 	.mem_input_is_flip_pending = dce_mi_is_flip_pending
 };
 
+static struct mem_input_funcs dce112_mi_funcs = {
+	.mem_input_program_display_marks = dce112_mi_program_display_marks,
+	.allocate_mem_input = dce_mi_allocate_dmif,
+	.free_mem_input = dce_mi_free_dmif,
+	.mem_input_program_surface_flip_and_addr =
+			dce_mi_program_surface_flip_and_addr,
+	.mem_input_program_pte_vm = dce_mi_program_pte_vm,
+	.mem_input_program_surface_config =
+			dce_mi_program_surface_config,
+	.mem_input_is_flip_pending = dce_mi_is_flip_pending
+};
+
+static struct mem_input_funcs dce120_mi_funcs = {
+	.mem_input_program_display_marks = dce120_mi_program_display_marks,
+	.allocate_mem_input = dce_mi_allocate_dmif,
+	.free_mem_input = dce_mi_free_dmif,
+	.mem_input_program_surface_flip_and_addr =
+			dce_mi_program_surface_flip_and_addr,
+	.mem_input_program_pte_vm = dce_mi_program_pte_vm,
+	.mem_input_program_surface_config =
+			dce_mi_program_surface_config,
+	.mem_input_is_flip_pending = dce_mi_is_flip_pending
+};
 
 void dce_mem_input_construct(
 	struct dce_mem_input *dce_mi,
@@ -769,7 +792,7 @@ void dce112_mem_input_construct(
 	const struct dce_mem_input_mask *mi_mask)
 {
 	dce_mem_input_construct(dce_mi, ctx, inst, regs, mi_shift, mi_mask);
-	dce_mi->base.funcs->mem_input_program_display_marks = dce112_mi_program_display_marks;
+	dce_mi->base.funcs = &dce112_mi_funcs;
 }
 
 void dce120_mem_input_construct(
@@ -781,5 +804,5 @@ void dce120_mem_input_construct(
 	const struct dce_mem_input_mask *mi_mask)
 {
 	dce_mem_input_construct(dce_mi, ctx, inst, regs, mi_shift, mi_mask);
-	dce_mi->base.funcs->mem_input_program_display_marks = dce120_mi_program_display_marks;
+	dce_mi->base.funcs = &dce120_mi_funcs;
 }
-- 
2.14.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] drm/amd/display: make function tables const
       [not found] ` <20180706122201.34465-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
@ 2018-07-06 12:22   ` Christian König
       [not found]     ` <20180706122201.34465-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Christian König @ 2018-07-06 12:22 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: mikita.lipski-5C7GfCeVMHo, harry.wentland-5C7GfCeVMHo

It is good practice to make global function tables const to avoid
accidental override.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c         | 6 +++---
 drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c | 2 +-
 drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h          | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
index bae752332a9f..85686d917636 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
@@ -729,7 +729,7 @@ static bool dce_mi_program_surface_flip_and_addr(
 	return true;
 }
 
-static struct mem_input_funcs dce_mi_funcs = {
+static const struct mem_input_funcs dce_mi_funcs = {
 	.mem_input_program_display_marks = dce_mi_program_display_marks,
 	.allocate_mem_input = dce_mi_allocate_dmif,
 	.free_mem_input = dce_mi_free_dmif,
@@ -741,7 +741,7 @@ static struct mem_input_funcs dce_mi_funcs = {
 	.mem_input_is_flip_pending = dce_mi_is_flip_pending
 };
 
-static struct mem_input_funcs dce112_mi_funcs = {
+static const struct mem_input_funcs dce112_mi_funcs = {
 	.mem_input_program_display_marks = dce112_mi_program_display_marks,
 	.allocate_mem_input = dce_mi_allocate_dmif,
 	.free_mem_input = dce_mi_free_dmif,
@@ -753,7 +753,7 @@ static struct mem_input_funcs dce112_mi_funcs = {
 	.mem_input_is_flip_pending = dce_mi_is_flip_pending
 };
 
-static struct mem_input_funcs dce120_mi_funcs = {
+static const struct mem_input_funcs dce120_mi_funcs = {
 	.mem_input_program_display_marks = dce120_mi_program_display_marks,
 	.allocate_mem_input = dce_mi_allocate_dmif,
 	.free_mem_input = dce_mi_free_dmif,
diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
index 0564c8e31252..9b9fc3d96c07 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
@@ -1011,7 +1011,7 @@ void dce110_free_mem_input_v(
 {
 }
 
-static struct mem_input_funcs dce110_mem_input_v_funcs = {
+static const struct mem_input_funcs dce110_mem_input_v_funcs = {
 	.mem_input_program_display_marks =
 			dce_mem_input_v_program_display_marks,
 	.mem_input_program_chroma_display_marks =
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
index 47f1dc5a43b7..da89c2edb07c 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
@@ -64,7 +64,7 @@ struct stutter_modes {
 };
 
 struct mem_input {
-	struct mem_input_funcs *funcs;
+	const struct mem_input_funcs *funcs;
 	struct dc_context *ctx;
 	struct dc_plane_address request_address;
 	struct dc_plane_address current_address;
-- 
2.14.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] drm/amd/display: make function tables const
       [not found]     ` <20180706122201.34465-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
@ 2018-07-06 13:32       ` Harry Wentland
       [not found]         ` <8b1e05c0-3b43-13cd-761c-c7b342d52364-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Harry Wentland @ 2018-07-06 13:32 UTC (permalink / raw)
  To: Christian König, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: mikita.lipski-5C7GfCeVMHo

On 2018-07-06 08:22 AM, Christian König wrote:
> It is good practice to make global function tables const to avoid
> accidental override.
> 
> Signed-off-by: Christian König <christian.koenig@amd.com>

Well, this is embarassing. Can't believe I didn't spot this.

Series is
Reviewed-by: Harry Wentland <harry.wentland@amd.com>

Now I wonder where else we might have this issue. Time to review all of our other function pointers.

Harry

> ---
>  drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c         | 6 +++---
>  drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c | 2 +-
>  drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h          | 2 +-
>  3 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> index bae752332a9f..85686d917636 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> @@ -729,7 +729,7 @@ static bool dce_mi_program_surface_flip_and_addr(
>  	return true;
>  }
>  
> -static struct mem_input_funcs dce_mi_funcs = {
> +static const struct mem_input_funcs dce_mi_funcs = {
>  	.mem_input_program_display_marks = dce_mi_program_display_marks,
>  	.allocate_mem_input = dce_mi_allocate_dmif,
>  	.free_mem_input = dce_mi_free_dmif,
> @@ -741,7 +741,7 @@ static struct mem_input_funcs dce_mi_funcs = {
>  	.mem_input_is_flip_pending = dce_mi_is_flip_pending
>  };
>  
> -static struct mem_input_funcs dce112_mi_funcs = {
> +static const struct mem_input_funcs dce112_mi_funcs = {
>  	.mem_input_program_display_marks = dce112_mi_program_display_marks,
>  	.allocate_mem_input = dce_mi_allocate_dmif,
>  	.free_mem_input = dce_mi_free_dmif,
> @@ -753,7 +753,7 @@ static struct mem_input_funcs dce112_mi_funcs = {
>  	.mem_input_is_flip_pending = dce_mi_is_flip_pending
>  };
>  
> -static struct mem_input_funcs dce120_mi_funcs = {
> +static const struct mem_input_funcs dce120_mi_funcs = {
>  	.mem_input_program_display_marks = dce120_mi_program_display_marks,
>  	.allocate_mem_input = dce_mi_allocate_dmif,
>  	.free_mem_input = dce_mi_free_dmif,
> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> index 0564c8e31252..9b9fc3d96c07 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> @@ -1011,7 +1011,7 @@ void dce110_free_mem_input_v(
>  {
>  }
>  
> -static struct mem_input_funcs dce110_mem_input_v_funcs = {
> +static const struct mem_input_funcs dce110_mem_input_v_funcs = {
>  	.mem_input_program_display_marks =
>  			dce_mem_input_v_program_display_marks,
>  	.mem_input_program_chroma_display_marks =
> diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> index 47f1dc5a43b7..da89c2edb07c 100644
> --- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> @@ -64,7 +64,7 @@ struct stutter_modes {
>  };
>  
>  struct mem_input {
> -	struct mem_input_funcs *funcs;
> +	const struct mem_input_funcs *funcs;
>  	struct dc_context *ctx;
>  	struct dc_plane_address request_address;
>  	struct dc_plane_address current_address;
> 
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] drm/amd/display: make function tables const
       [not found]         ` <8b1e05c0-3b43-13cd-761c-c7b342d52364-5C7GfCeVMHo@public.gmane.org>
@ 2018-07-06 13:41           ` Christian König
  2018-07-07  1:51           ` Zhu, Rex
  1 sibling, 0 replies; 7+ messages in thread
From: Christian König @ 2018-07-06 13:41 UTC (permalink / raw)
  To: Harry Wentland, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: mikita.lipski-5C7GfCeVMHo

Am 06.07.2018 um 15:32 schrieb Harry Wentland:
> On 2018-07-06 08:22 AM, Christian König wrote:
>> It is good practice to make global function tables const to avoid
>> accidental override.
>>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
> Well, this is embarassing. Can't believe I didn't spot this.
>
> Series is
> Reviewed-by: Harry Wentland <harry.wentland@amd.com>
>
> Now I wonder where else we might have this issue. Time to review all of our other function pointers.

Well it's not an uncommon problem and sometimes we even did that 
intentional for example on APUs where you can only have one instance of 
a certain generation.

Best practice to avoid problems like that is to make function pointers 
and tables const.

Christian.

>
> Harry
>
>> ---
>>   drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c         | 6 +++---
>>   drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c | 2 +-
>>   drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h          | 2 +-
>>   3 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
>> index bae752332a9f..85686d917636 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
>> +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
>> @@ -729,7 +729,7 @@ static bool dce_mi_program_surface_flip_and_addr(
>>   	return true;
>>   }
>>   
>> -static struct mem_input_funcs dce_mi_funcs = {
>> +static const struct mem_input_funcs dce_mi_funcs = {
>>   	.mem_input_program_display_marks = dce_mi_program_display_marks,
>>   	.allocate_mem_input = dce_mi_allocate_dmif,
>>   	.free_mem_input = dce_mi_free_dmif,
>> @@ -741,7 +741,7 @@ static struct mem_input_funcs dce_mi_funcs = {
>>   	.mem_input_is_flip_pending = dce_mi_is_flip_pending
>>   };
>>   
>> -static struct mem_input_funcs dce112_mi_funcs = {
>> +static const struct mem_input_funcs dce112_mi_funcs = {
>>   	.mem_input_program_display_marks = dce112_mi_program_display_marks,
>>   	.allocate_mem_input = dce_mi_allocate_dmif,
>>   	.free_mem_input = dce_mi_free_dmif,
>> @@ -753,7 +753,7 @@ static struct mem_input_funcs dce112_mi_funcs = {
>>   	.mem_input_is_flip_pending = dce_mi_is_flip_pending
>>   };
>>   
>> -static struct mem_input_funcs dce120_mi_funcs = {
>> +static const struct mem_input_funcs dce120_mi_funcs = {
>>   	.mem_input_program_display_marks = dce120_mi_program_display_marks,
>>   	.allocate_mem_input = dce_mi_allocate_dmif,
>>   	.free_mem_input = dce_mi_free_dmif,
>> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
>> index 0564c8e31252..9b9fc3d96c07 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
>> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
>> @@ -1011,7 +1011,7 @@ void dce110_free_mem_input_v(
>>   {
>>   }
>>   
>> -static struct mem_input_funcs dce110_mem_input_v_funcs = {
>> +static const struct mem_input_funcs dce110_mem_input_v_funcs = {
>>   	.mem_input_program_display_marks =
>>   			dce_mem_input_v_program_display_marks,
>>   	.mem_input_program_chroma_display_marks =
>> diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
>> index 47f1dc5a43b7..da89c2edb07c 100644
>> --- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
>> +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
>> @@ -64,7 +64,7 @@ struct stutter_modes {
>>   };
>>   
>>   struct mem_input {
>> -	struct mem_input_funcs *funcs;
>> +	const struct mem_input_funcs *funcs;
>>   	struct dc_context *ctx;
>>   	struct dc_plane_address request_address;
>>   	struct dc_plane_address current_address;
>>

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] drm/amd/display: make function tables const
       [not found]         ` <8b1e05c0-3b43-13cd-761c-c7b342d52364-5C7GfCeVMHo@public.gmane.org>
  2018-07-06 13:41           ` Christian König
@ 2018-07-07  1:51           ` Zhu, Rex
       [not found]             ` <CY4PR12MB1687241A8A0FF74C10E93985FB460-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
  1 sibling, 1 reply; 7+ messages in thread
From: Zhu, Rex @ 2018-07-07  1:51 UTC (permalink / raw)
  To: Wentland, Harry, Christian König,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Michel Dänzer
  Cc: Lipski, Mikita


[-- Attachment #1.1: Type: text/plain, Size: 4536 bytes --]

Add Michel,


seems Michel found a similar issue. Please see the kern.log.


Best Regards

Rex


________________________________
From: amd-gfx <amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org> on behalf of Harry Wentland <harry.wentland-5C7GfCeVMHo@public.gmane.org>
Sent: Friday, July 6, 2018 9:32 PM
To: Christian König; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Cc: Lipski, Mikita
Subject: Re: [PATCH 2/2] drm/amd/display: make function tables const

On 2018-07-06 08:22 AM, Christian König wrote:
> It is good practice to make global function tables const to avoid
> accidental override.
>
> Signed-off-by: Christian König <christian.koenig-5C7GfCeVMHo@public.gmane.org>

Well, this is embarassing. Can't believe I didn't spot this.

Series is
Reviewed-by: Harry Wentland <harry.wentland-5C7GfCeVMHo@public.gmane.org>

Now I wonder where else we might have this issue. Time to review all of our other function pointers.

Harry

> ---
>  drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c         | 6 +++---
>  drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c | 2 +-
>  drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h          | 2 +-
>  3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> index bae752332a9f..85686d917636 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> @@ -729,7 +729,7 @@ static bool dce_mi_program_surface_flip_and_addr(
>        return true;
>  }
>
> -static struct mem_input_funcs dce_mi_funcs = {
> +static const struct mem_input_funcs dce_mi_funcs = {
>        .mem_input_program_display_marks = dce_mi_program_display_marks,
>        .allocate_mem_input = dce_mi_allocate_dmif,
>        .free_mem_input = dce_mi_free_dmif,
> @@ -741,7 +741,7 @@ static struct mem_input_funcs dce_mi_funcs = {
>        .mem_input_is_flip_pending = dce_mi_is_flip_pending
>  };
>
> -static struct mem_input_funcs dce112_mi_funcs = {
> +static const struct mem_input_funcs dce112_mi_funcs = {
>        .mem_input_program_display_marks = dce112_mi_program_display_marks,
>        .allocate_mem_input = dce_mi_allocate_dmif,
>        .free_mem_input = dce_mi_free_dmif,
> @@ -753,7 +753,7 @@ static struct mem_input_funcs dce112_mi_funcs = {
>        .mem_input_is_flip_pending = dce_mi_is_flip_pending
>  };
>
> -static struct mem_input_funcs dce120_mi_funcs = {
> +static const struct mem_input_funcs dce120_mi_funcs = {
>        .mem_input_program_display_marks = dce120_mi_program_display_marks,
>        .allocate_mem_input = dce_mi_allocate_dmif,
>        .free_mem_input = dce_mi_free_dmif,
> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> index 0564c8e31252..9b9fc3d96c07 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> @@ -1011,7 +1011,7 @@ void dce110_free_mem_input_v(
>  {
>  }
>
> -static struct mem_input_funcs dce110_mem_input_v_funcs = {
> +static const struct mem_input_funcs dce110_mem_input_v_funcs = {
>        .mem_input_program_display_marks =
>                        dce_mem_input_v_program_display_marks,
>        .mem_input_program_chroma_display_marks =
> diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> index 47f1dc5a43b7..da89c2edb07c 100644
> --- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> @@ -64,7 +64,7 @@ struct stutter_modes {
>  };
>
>  struct mem_input {
> -     struct mem_input_funcs *funcs;
> +     const struct mem_input_funcs *funcs;
>        struct dc_context *ctx;
>        struct dc_plane_address request_address;
>        struct dc_plane_address current_address;
>
_______________________________________________
amd-gfx mailing list
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
amd-gfx Info Page - freedesktop.org<https://lists.freedesktop.org/mailman/listinfo/amd-gfx>
lists.freedesktop.org
Subscribing to amd-gfx: Subscribe to amd-gfx by filling out the following form. Use of all freedesktop.org lists is subject to our Code of Conduct.




[-- Attachment #1.2: Type: text/html, Size: 9255 bytes --]

[-- Attachment #2: kern.log --]
[-- Type: application/octet-stream, Size: 9994 bytes --]

Jul  6 15:19:56 kaveri kernel: [   55.653436] BUG: unable to handle kernel paging request at ffffed016177eaea
Jul  6 15:19:56 kaveri kernel: [   55.653448] PGD 43f370067 P4D 43f370067 PUD 0 
Jul  6 15:19:56 kaveri kernel: [   55.653457] Oops: 0000 [#1] SMP KASAN NOPTI
Jul  6 15:19:56 kaveri kernel: [   55.653462] CPU: 2 PID: 4371 Comm: Xorg Tainted: G           OE     4.18.0-rc1+ #110
Jul  6 15:19:56 kaveri kernel: [   55.653466] Hardware name: Micro-Star International Co., Ltd. MS-7A34/B350 TOMAHAWK (MS-7A34), BIOS 1.80 09/13/2017
Jul  6 15:19:56 kaveri kernel: [   55.653551] RIP: 0010:dce_update_clocks+0x41c/0x790 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.653553] Code: 7b 03 00 00 41 39 e8 45 8b 7d 14 0f 83 69 01 00 00 44 89 c5 48 b8 00 00 00 00 00 fc ff df 49 8d 7c ed 50 48 89 f9 48 c1 e9 03 <0f> b6 04 01 84 c0 74 08 3c 03 0f 8e 2b 03 00 00 4c 89 f1 48 b8 00 
Jul  6 15:19:56 kaveri kernel: [   55.653616] RSP: 0018:ffff8803d2aff2d8 EFLAGS: 00010212
Jul  6 15:19:56 kaveri kernel: [   55.653621] RAX: dffffc0000000000 RBX: ffff8803e4dc5f14 RCX: 1ffff1016177eaea
Jul  6 15:19:56 kaveri kernel: [   55.653624] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880b0bbf5750
Jul  6 15:19:56 kaveri kernel: [   55.653627] RBP: 00000000e4dc5f00 R08: 00000000e4dc5f00 R09: ffffed007dc14567
Jul  6 15:19:56 kaveri kernel: [   55.653630] R10: ffff8803d2aff380 R11: ffffed007dc14566 R12: 1ffff1007a55fe5d
Jul  6 15:19:56 kaveri kernel: [   55.653633] R13: ffff8803e4dc5f00 R14: ffff8803d2aff3b0 R15: 0000000000000000
Jul  6 15:19:56 kaveri kernel: [   55.653637] FS:  00007f6c226a5dc0(0000) GS:ffff8803ee080000(0000) knlGS:0000000000000000
Jul  6 15:19:56 kaveri kernel: [   55.653640] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jul  6 15:19:56 kaveri kernel: [   55.653643] CR2: ffffed016177eaea CR3: 00000003c08d0000 CR4: 00000000003406e0
Jul  6 15:19:56 kaveri kernel: [   55.653646] Call Trace:
Jul  6 15:19:56 kaveri kernel: [   55.653727]  ? dce110_set_safe_displaymarks+0x12e/0x260 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.653808]  ? dce_clock_read_ss_info+0x420/0x420 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.653885]  ? generic_reg_update_ex+0x228/0x500 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.653967]  dce100_set_bandwidth+0x22b/0x300 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654047]  ? dce100_pplib_apply_display_requirements+0x1b0/0x1b0 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654053]  ? rcu_read_lock_sched_held+0xdc/0x110
Jul  6 15:19:56 kaveri kernel: [   55.654134]  ? bios_set_scratch_acc_mode_change+0x176/0x220 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654213]  dc_commit_state+0x700/0x16b0 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654295]  ? dc_destroy+0x90/0x90 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654316]  ? drm_dev_dbg+0x1a0/0x1a0 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654401]  amdgpu_dm_atomic_commit_tail+0x961/0x3f90 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654409]  ? mark_held_locks+0xa8/0xf0
Jul  6 15:19:56 kaveri kernel: [   55.654414]  ? trace_hardirqs_on_caller+0x381/0x570
Jul  6 15:19:56 kaveri kernel: [   55.654419]  ? _raw_spin_unlock_irq+0x29/0x40
Jul  6 15:19:56 kaveri kernel: [   55.654424]  ? wait_for_completion_timeout+0xc1/0x390
Jul  6 15:19:56 kaveri kernel: [   55.654435]  ? drm_atomic_helper_swap_state+0x7a2/0x15b0 [drm_kms_helper]
Jul  6 15:19:56 kaveri kernel: [   55.654512]  ? amdgpu_dm_do_flip+0xab0/0xab0 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654517]  ? lock_downgrade+0x5e0/0x5e0
Jul  6 15:19:56 kaveri kernel: [   55.654593]  ? dm_plane_helper_prepare_fb+0x291/0xb00 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654607]  ? drm_atomic_helper_wait_for_dependencies+0x255/0x7d0 [drm_kms_helper]
Jul  6 15:19:56 kaveri kernel: [   55.654620]  commit_tail+0x9a/0xf0 [drm_kms_helper]
Jul  6 15:19:56 kaveri kernel: [   55.654632]  drm_atomic_helper_commit+0x179/0x240 [drm_kms_helper]
Jul  6 15:19:56 kaveri kernel: [   55.654645]  drm_atomic_helper_set_config+0xbb/0x100 [drm_kms_helper]
Jul  6 15:19:56 kaveri kernel: [   55.654665]  __drm_mode_set_config_internal+0x199/0x4f0 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654686]  drm_mode_setcrtc+0x83f/0xf60 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654710]  ? drm_mode_getcrtc+0x760/0x760 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654716]  ? refcount_inc+0x30/0x30
Jul  6 15:19:56 kaveri kernel: [   55.654722]  ? find_held_lock+0x32/0x1c0
Jul  6 15:19:56 kaveri kernel: [   55.654748]  ? drm_mode_getcrtc+0x760/0x760 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654765]  drm_ioctl_kernel+0x197/0x220 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654783]  ? drm_setversion+0x7d0/0x7d0 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654790]  ? __check_object_size+0x149/0x360
Jul  6 15:19:56 kaveri kernel: [   55.654809]  drm_ioctl+0x60a/0x970 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654829]  ? drm_mode_getcrtc+0x760/0x760 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654847]  ? drm_ioctl_kernel+0x220/0x220 [drm]
Jul  6 15:19:56 kaveri kernel: [   55.654857]  ? _raw_spin_unlock_irqrestore+0x32/0x60
Jul  6 15:19:56 kaveri kernel: [   55.654861]  ? trace_hardirqs_on_caller+0x381/0x570
Jul  6 15:19:56 kaveri kernel: [   55.654921]  amdgpu_drm_ioctl+0xcc/0x1a0 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.654928]  do_vfs_ioctl+0x192/0xf30
Jul  6 15:19:56 kaveri kernel: [   55.654933]  ? find_held_lock+0x32/0x1c0
Jul  6 15:19:56 kaveri kernel: [   55.654937]  ? ioctl_preallocate+0x1b0/0x1b0
Jul  6 15:19:56 kaveri kernel: [   55.654943]  ? __fget+0x1c8/0x300
Jul  6 15:19:56 kaveri kernel: [   55.654947]  ? lock_downgrade+0x5e0/0x5e0
Jul  6 15:19:56 kaveri kernel: [   55.654955]  ? __fget+0x1e0/0x300
Jul  6 15:19:56 kaveri kernel: [   55.654962]  ksys_ioctl+0x70/0x80
Jul  6 15:19:56 kaveri kernel: [   55.654968]  __x64_sys_ioctl+0x6f/0xb0
Jul  6 15:19:56 kaveri kernel: [   55.654972]  ? trace_hardirqs_on_caller+0x381/0x570
Jul  6 15:19:56 kaveri kernel: [   55.654976]  do_syscall_64+0xa5/0x3f0
Jul  6 15:19:56 kaveri kernel: [   55.654981]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
Jul  6 15:19:56 kaveri kernel: [   55.654985] RIP: 0033:0x7f6c20640f07
Jul  6 15:19:56 kaveri kernel: [   55.654987] Code: b3 66 90 48 8b 05 81 5f 2c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 51 5f 2c 00 f7 d8 64 89 01 48 
Jul  6 15:19:56 kaveri kernel: [   55.655050] RSP: 002b:00007fff96a66688 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
Jul  6 15:19:56 kaveri kernel: [   55.655055] RAX: ffffffffffffffda RBX: 00007fff96a666c0 RCX: 00007f6c20640f07
Jul  6 15:19:56 kaveri kernel: [   55.655058] RDX: 00007fff96a666c0 RSI: 00000000c06864a2 RDI: 000000000000000c
Jul  6 15:19:56 kaveri kernel: [   55.655061] RBP: 00007fff96a666b0 R08: 0000000000000000 R09: 0000555e05c0a470
Jul  6 15:19:56 kaveri kernel: [   55.655064] R10: 00007fff96a667a0 R11: 0000000000000246 R12: 00007fff96a666c0
Jul  6 15:19:56 kaveri kernel: [   55.655067] R13: 00000000c06864a2 R14: 000000000000000c R15: 0000000000000000
Jul  6 15:19:56 kaveri kernel: [   55.655074] Modules linked in: amdkfd(OE) amdgpu(OE) chash(OE) gpu_sched(OE) lz4(E) lz4_compress(E) cpufreq_powersave(E) cpufreq_userspace(E) cpufreq_conservative(E) edac_mce_amd(E) binfmt_misc(E) nls_ascii(E) nls_cp437(E) vfat(E) fat(E) kvm(E) irqbypass(E) crct10dif_pclmul(E) crc32_pclmul(E) ghash_clmulni_intel(E) pcbc(E) snd_hda_codec_realtek(E) radeon(OE) snd_hda_codec_generic(E) wmi_bmof(E) snd_hda_codec_hdmi(E) snd_hda_intel(E) ttm(OE) snd_hda_codec(E) snd_hda_core(E) drm_kms_helper(OE) snd_hwdep(E) snd_pcm(E) aesni_intel(E) drm(OE) efi_pstore(E) aes_x86_64(E) i2c_algo_bit(E) snd_timer(E) fb_sys_fops(E) crypto_simd(E) ccp(E) r8169(E) syscopyarea(E) cryptd(E) sysfillrect(E) sp5100_tco(E) snd(E) glue_helper(E) pcspkr(E) sysimgblt(E) efivars(E) k10temp(E) mii(E) sg(E) rng_core(E) soundcore(E) i2c_piix4(E)
Jul  6 15:19:56 kaveri kernel: [   55.655146]  wmi(E) button(E) acpi_cpufreq(E) tcp_bbr(E) sch_fq(E) sunrpc(E) nct6775(E) hwmon_vid(E) efivarfs(E) ip_tables(E) x_tables(E) ext4(E) crc32c_generic(E) crc16(E) mbcache(E) jbd2(E) fscrypto(E) dm_mod(E) raid10(E) raid1(E) raid0(E) multipath(E) linear(E) md_mod(E) sd_mod(E) evdev(E) hid_generic(E) usbhid(E) hid(E) ahci(E) libahci(E) libata(E) xhci_pci(E) xhci_hcd(E) crc32c_intel(E) scsi_mod(E) usbcore(E) gpio_amdpt(E) gpio_generic(E)
Jul  6 15:19:56 kaveri kernel: [   55.655194] CR2: ffffed016177eaea
Jul  6 15:19:56 kaveri kernel: [   55.655198] ---[ end trace 44ec1e02c521af9e ]---
Jul  6 15:19:56 kaveri kernel: [   55.655276] RIP: 0010:dce_update_clocks+0x41c/0x790 [amdgpu]
Jul  6 15:19:56 kaveri kernel: [   55.655279] Code: 7b 03 00 00 41 39 e8 45 8b 7d 14 0f 83 69 01 00 00 44 89 c5 48 b8 00 00 00 00 00 fc ff df 49 8d 7c ed 50 48 89 f9 48 c1 e9 03 <0f> b6 04 01 84 c0 74 08 3c 03 0f 8e 2b 03 00 00 4c 89 f1 48 b8 00 
Jul  6 15:19:56 kaveri kernel: [   55.655341] RSP: 0018:ffff8803d2aff2d8 EFLAGS: 00010212
Jul  6 15:19:56 kaveri kernel: [   55.655345] RAX: dffffc0000000000 RBX: ffff8803e4dc5f14 RCX: 1ffff1016177eaea
Jul  6 15:19:56 kaveri kernel: [   55.655348] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880b0bbf5750
Jul  6 15:19:56 kaveri kernel: [   55.655351] RBP: 00000000e4dc5f00 R08: 00000000e4dc5f00 R09: ffffed007dc14567
Jul  6 15:19:56 kaveri kernel: [   55.655354] R10: ffff8803d2aff380 R11: ffffed007dc14566 R12: 1ffff1007a55fe5d
Jul  6 15:19:56 kaveri kernel: [   55.655357] R13: ffff8803e4dc5f00 R14: ffff8803d2aff3b0 R15: 0000000000000000
Jul  6 15:19:56 kaveri kernel: [   55.655360] FS:  00007f6c226a5dc0(0000) GS:ffff8803ee080000(0000) knlGS:0000000000000000
Jul  6 15:19:56 kaveri kernel: [   55.655363] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jul  6 15:19:56 kaveri kernel: [   55.655366] CR2: ffffed016177eaea CR3: 00000003c08d0000 CR4: 00000000003406e0

[-- Attachment #3: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] drm/amd/display: make function tables const
       [not found]             ` <CY4PR12MB1687241A8A0FF74C10E93985FB460-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
@ 2018-07-07 12:30               ` Christian König
       [not found]                 ` <d4676482-caba-c691-fe95-9f034e8eb1b9-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Christian König @ 2018-07-07 12:30 UTC (permalink / raw)
  To: Zhu, Rex, Wentland, Harry,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Michel Dänzer
  Cc: Lipski, Mikita


[-- Attachment #1.1: Type: text/plain, Size: 5603 bytes --]

That's a completely different issue. I'm running into it with just a 
Tonga in my system.

According to my bisecting the problematic patch seems to be:
> commit 3fdadbfe1edf4168b2515083af5651c95aeb299d (refs/bisect/bad)
> Author: Rex Zhu <rex.zhu-5C7GfCeVMHo@public.gmane.org>
> Date:   Thu Jul 5 19:22:50 2018 +0800
>
>     drm/amd/pp: Implement get_performance_level for legacy dgpu
>
>     display can get clock info through this function.
>     implement this function for vega10 and old asics.
>     from vega12, there is no power state management,
>     so need to add new interface to notify display
>     the clock info
>
>     Reviewed-by: Alex Deucher <alexander.deucher-5C7GfCeVMHo@public.gmane.org>
>     Signed-off-by: Rex Zhu <Rex.Zhu-5C7GfCeVMHo@public.gmane.org>

Please fix and/or revert immediately, cause that is quite a show stopper 
for my testing.

Thanks,
Christian.

Am 07.07.2018 um 03:51 schrieb Zhu, Rex:
>
> Add Michel,
>
>
> seems Michel found a similar issue. Please see the kern.log.
>
>
> Best Regards
>
> Rex
>
>
>
> ------------------------------------------------------------------------
> *From:* amd-gfx <amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org> on behalf of 
> Harry Wentland <harry.wentland-5C7GfCeVMHo@public.gmane.org>
> *Sent:* Friday, July 6, 2018 9:32 PM
> *To:* Christian König; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> *Cc:* Lipski, Mikita
> *Subject:* Re: [PATCH 2/2] drm/amd/display: make function tables const
> On 2018-07-06 08:22 AM, Christian König wrote:
> > It is good practice to make global function tables const to avoid
> > accidental override.
> >
> > Signed-off-by: Christian König <christian.koenig-5C7GfCeVMHo@public.gmane.org>
>
> Well, this is embarassing. Can't believe I didn't spot this.
>
> Series is
> Reviewed-by: Harry Wentland <harry.wentland-5C7GfCeVMHo@public.gmane.org>
>
> Now I wonder where else we might have this issue. Time to review all 
> of our other function pointers.
>
> Harry
>
> > ---
> > drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c | 6 +++---
> > drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c | 2 +-
> > drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h | 2 +-
> >  3 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c 
> b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> > index bae752332a9f..85686d917636 100644
> > --- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> > +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> > @@ -729,7 +729,7 @@ static bool dce_mi_program_surface_flip_and_addr(
> >        return true;
> >  }
> >
> > -static struct mem_input_funcs dce_mi_funcs = {
> > +static const struct mem_input_funcs dce_mi_funcs = {
> >        .mem_input_program_display_marks = dce_mi_program_display_marks,
> >        .allocate_mem_input = dce_mi_allocate_dmif,
> >        .free_mem_input = dce_mi_free_dmif,
> > @@ -741,7 +741,7 @@ static struct mem_input_funcs dce_mi_funcs = {
> >        .mem_input_is_flip_pending = dce_mi_is_flip_pending
> >  };
> >
> > -static struct mem_input_funcs dce112_mi_funcs = {
> > +static const struct mem_input_funcs dce112_mi_funcs = {
> >        .mem_input_program_display_marks = 
> dce112_mi_program_display_marks,
> >        .allocate_mem_input = dce_mi_allocate_dmif,
> >        .free_mem_input = dce_mi_free_dmif,
> > @@ -753,7 +753,7 @@ static struct mem_input_funcs dce112_mi_funcs = {
> >        .mem_input_is_flip_pending = dce_mi_is_flip_pending
> >  };
> >
> > -static struct mem_input_funcs dce120_mi_funcs = {
> > +static const struct mem_input_funcs dce120_mi_funcs = {
> >        .mem_input_program_display_marks = 
> dce120_mi_program_display_marks,
> >        .allocate_mem_input = dce_mi_allocate_dmif,
> >        .free_mem_input = dce_mi_free_dmif,
> > diff --git 
> a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c 
> b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> > index 0564c8e31252..9b9fc3d96c07 100644
> > --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> > +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> > @@ -1011,7 +1011,7 @@ void dce110_free_mem_input_v(
> >  {
> >  }
> >
> > -static struct mem_input_funcs dce110_mem_input_v_funcs = {
> > +static const struct mem_input_funcs dce110_mem_input_v_funcs = {
> >        .mem_input_program_display_marks =
> > dce_mem_input_v_program_display_marks,
> >        .mem_input_program_chroma_display_marks =
> > diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h 
> b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> > index 47f1dc5a43b7..da89c2edb07c 100644
> > --- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> > +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> > @@ -64,7 +64,7 @@ struct stutter_modes {
> >  };
> >
> >  struct mem_input {
> > -     struct mem_input_funcs *funcs;
> > +     const struct mem_input_funcs *funcs;
> >        struct dc_context *ctx;
> >        struct dc_plane_address request_address;
> >        struct dc_plane_address current_address;
> >
> _______________________________________________
> amd-gfx mailing list
> amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> amd-gfx Info Page - freedesktop.org 
> <https://lists.freedesktop.org/mailman/listinfo/amd-gfx>
> lists.freedesktop.org
> Subscribing to amd-gfx: Subscribe to amd-gfx by filling out the 
> following form. Use of all freedesktop.org lists is subject to our 
> Code of Conduct.
>
>
>


[-- Attachment #1.2: Type: text/html, Size: 14941 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] drm/amd/display: make function tables const
       [not found]                 ` <d4676482-caba-c691-fe95-9f034e8eb1b9-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2018-07-07 13:47                   ` Zhu, Rex
  0 siblings, 0 replies; 7+ messages in thread
From: Zhu, Rex @ 2018-07-07 13:47 UTC (permalink / raw)
  To: Wentland, Harry, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	Michel Dänzer, Koenig, Christian
  Cc: Lipski, Mikita


[-- Attachment #1.1: Type: text/plain, Size: 6509 bytes --]

Hi Christian,


As I am ooo on vocation, Can display team help to check this issue or just revert the patch?


I verified on Polaris11 and Vega10. From pp side, this is no difference between tonga and polaris10.


Best Regards

Rex



________________________________
From: Christian König <ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Sent: Saturday, July 7, 2018 8:30 PM
To: Zhu, Rex; Wentland, Harry; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org; Michel Dänzer
Cc: Lipski, Mikita
Subject: Re: [PATCH 2/2] drm/amd/display: make function tables const

That's a completely different issue. I'm running into it with just a Tonga in my system.

According to my bisecting the problematic patch seems to be:
commit 3fdadbfe1edf4168b2515083af5651c95aeb299d (refs/bisect/bad)
Author: Rex Zhu <rex.zhu-5C7GfCeVMHo@public.gmane.org><mailto:rex.zhu-5C7GfCeVMHo@public.gmane.org>
Date:   Thu Jul 5 19:22:50 2018 +0800

    drm/amd/pp: Implement get_performance_level for legacy dgpu

    display can get clock info through this function.
    implement this function for vega10 and old asics.
    from vega12, there is no power state management,
    so need to add new interface to notify display
    the clock info

    Reviewed-by: Alex Deucher <alexander.deucher-5C7GfCeVMHo@public.gmane.org><mailto:alexander.deucher-5C7GfCeVMHo@public.gmane.org>
    Signed-off-by: Rex Zhu <Rex.Zhu-5C7GfCeVMHo@public.gmane.org><mailto:Rex.Zhu-5C7GfCeVMHo@public.gmane.org>

Please fix and/or revert immediately, cause that is quite a show stopper for my testing.

Thanks,
Christian.

Am 07.07.2018 um 03:51 schrieb Zhu, Rex:

Add Michel,


seems Michel found a similar issue. Please see the kern.log.


Best Regards

Rex


________________________________
From: amd-gfx <amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org><mailto:amd-gfx-bounces@lists.freedesktop.org> on behalf of Harry Wentland <harry.wentland-urvtwAKJhsc@public.gmane.orgm><mailto:harry.wentland-5C7GfCeVMHo@public.gmane.org>
Sent: Friday, July 6, 2018 9:32 PM
To: Christian König; amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org<mailto:amd-gfx@lists.freedesktop.org>
Cc: Lipski, Mikita
Subject: Re: [PATCH 2/2] drm/amd/display: make function tables const

On 2018-07-06 08:22 AM, Christian König wrote:
> It is good practice to make global function tables const to avoid
> accidental override.
>
> Signed-off-by: Christian König <christian.koenig-5C7GfCeVMHo@public.gmane.org><mailto:christian.koenig-5C7GfCeVMHo@public.gmane.org>

Well, this is embarassing. Can't believe I didn't spot this.

Series is
Reviewed-by: Harry Wentland <harry.wentland-5C7GfCeVMHo@public.gmane.org><mailto:harry.wentland@amd.com>

Now I wonder where else we might have this issue. Time to review all of our other function pointers.

Harry

> ---
>  drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c         | 6 +++---
>  drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c | 2 +-
>  drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h          | 2 +-
>  3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> index bae752332a9f..85686d917636 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> @@ -729,7 +729,7 @@ static bool dce_mi_program_surface_flip_and_addr(
>        return true;
>  }
>
> -static struct mem_input_funcs dce_mi_funcs = {
> +static const struct mem_input_funcs dce_mi_funcs = {
>        .mem_input_program_display_marks = dce_mi_program_display_marks,
>        .allocate_mem_input = dce_mi_allocate_dmif,
>        .free_mem_input = dce_mi_free_dmif,
> @@ -741,7 +741,7 @@ static struct mem_input_funcs dce_mi_funcs = {
>        .mem_input_is_flip_pending = dce_mi_is_flip_pending
>  };
>
> -static struct mem_input_funcs dce112_mi_funcs = {
> +static const struct mem_input_funcs dce112_mi_funcs = {
>        .mem_input_program_display_marks = dce112_mi_program_display_marks,
>        .allocate_mem_input = dce_mi_allocate_dmif,
>        .free_mem_input = dce_mi_free_dmif,
> @@ -753,7 +753,7 @@ static struct mem_input_funcs dce112_mi_funcs = {
>        .mem_input_is_flip_pending = dce_mi_is_flip_pending
>  };
>
> -static struct mem_input_funcs dce120_mi_funcs = {
> +static const struct mem_input_funcs dce120_mi_funcs = {
>        .mem_input_program_display_marks = dce120_mi_program_display_marks,
>        .allocate_mem_input = dce_mi_allocate_dmif,
>        .free_mem_input = dce_mi_free_dmif,
> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> index 0564c8e31252..9b9fc3d96c07 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
> @@ -1011,7 +1011,7 @@ void dce110_free_mem_input_v(
>  {
>  }
>
> -static struct mem_input_funcs dce110_mem_input_v_funcs = {
> +static const struct mem_input_funcs dce110_mem_input_v_funcs = {
>        .mem_input_program_display_marks =
>                        dce_mem_input_v_program_display_marks,
>        .mem_input_program_chroma_display_marks =
> diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> index 47f1dc5a43b7..da89c2edb07c 100644
> --- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
> @@ -64,7 +64,7 @@ struct stutter_modes {
>  };
>
>  struct mem_input {
> -     struct mem_input_funcs *funcs;
> +     const struct mem_input_funcs *funcs;
>        struct dc_context *ctx;
>        struct dc_plane_address request_address;
>        struct dc_plane_address current_address;
>
_______________________________________________
amd-gfx mailing list
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org<mailto:amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
amd-gfx Info Page - freedesktop.org<https://lists.freedesktop.org/mailman/listinfo/amd-gfx>
lists.freedesktop.org
Subscribing to amd-gfx: Subscribe to amd-gfx by filling out the following form. Use of all freedesktop.org lists is subject to our Code of Conduct.





[-- Attachment #1.2: Type: text/html, Size: 12479 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-07-07 13:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-06 12:22 [PATCH 1/2] drm/amd/display: fix invalid function table override Christian König
     [not found] ` <20180706122201.34465-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-07-06 12:22   ` [PATCH 2/2] drm/amd/display: make function tables const Christian König
     [not found]     ` <20180706122201.34465-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-07-06 13:32       ` Harry Wentland
     [not found]         ` <8b1e05c0-3b43-13cd-761c-c7b342d52364-5C7GfCeVMHo@public.gmane.org>
2018-07-06 13:41           ` Christian König
2018-07-07  1:51           ` Zhu, Rex
     [not found]             ` <CY4PR12MB1687241A8A0FF74C10E93985FB460-rpdhrqHFk06Y0SjTqZDccQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-07-07 12:30               ` Christian König
     [not found]                 ` <d4676482-caba-c691-fe95-9f034e8eb1b9-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-07-07 13:47                   ` Zhu, Rex

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.