[PATCH 2/2] drm/amd/display: make function tables const

Christian König ckoenig.leichtzumerken at gmail.com
Fri Jul 6 13:41:09 UTC 2018


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 at amd.com>
> Well, this is embarassing. Can't believe I didn't spot this.
>
> Series is
> Reviewed-by: Harry Wentland <harry.wentland at 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;
>>



More information about the amd-gfx mailing list