[PATCH] drm/amdkfd: Replace one-element array with flexible-array member

cgel.zte@gmail.com posted 1 patch 4 years, 4 months ago
drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] drm/amdkfd: Replace one-element array with flexible-array member
Posted by cgel.zte@gmail.com 4 years, 4 months ago
From: Changcheng Deng <deng.changcheng@zte.com.cn>

There is a regular need in the kernel to provide a way to declare having
a dynamically sized set of trailing elements in a structure. Kernel code
should always use "flexible array members" for these cases. The older
style of one-element or zero-length arrays should no longer be used.
Reference:
https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>
---
 drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
index 482ba84a728d..d7c38fbc533e 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
@@ -310,7 +310,7 @@ struct cdit_header {
 	uint32_t	creator_revision;
 	uint32_t	total_entries;
 	uint16_t	num_domains;
-	uint8_t		entry[1];
+	uint8_t		entry[];
 };
 
 #pragma pack()
-- 
2.25.1

Re: [PATCH] drm/amdkfd: Replace one-element array with flexible-array member
Posted by Christian König 4 years, 4 months ago
Felix need to comment as well, but I don't think that this will work 
that easily.

By changing the entry from 1 to 0 your are also changing the size of the 
structure.

Regards,
Christian.

Am 18.02.22 um 04:09 schrieb cgel.zte@gmail.com:
> From: Changcheng Deng <deng.changcheng@zte.com.cn>
>
> There is a regular need in the kernel to provide a way to declare having
> a dynamically sized set of trailing elements in a structure. Kernel code
> should always use "flexible array members" for these cases. The older
> style of one-element or zero-length arrays should no longer be used.
> Reference:
> https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays
>
> Reported-by: Zeal Robot <zealci@zte.com.cn>
> Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>
> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> index 482ba84a728d..d7c38fbc533e 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
> @@ -310,7 +310,7 @@ struct cdit_header {
>   	uint32_t	creator_revision;
>   	uint32_t	total_entries;
>   	uint16_t	num_domains;
> -	uint8_t		entry[1];
> +	uint8_t		entry[];
>   };
>   
>   #pragma pack()

Re: [PATCH] drm/amdkfd: Replace one-element array with flexible-array member
Posted by Felix Kuehling 4 years, 4 months ago
It looks like this structure isn't being used at all. So I'm OK with 
this change, in case we ever use it in the future.

Regards,
   Felix


Am 2022-02-18 um 02:47 schrieb Christian König:
> Felix need to comment as well, but I don't think that this will work 
> that easily.
>
> By changing the entry from 1 to 0 your are also changing the size of 
> the structure.
>
> Regards,
> Christian.
>
> Am 18.02.22 um 04:09 schrieb cgel.zte@gmail.com:
>> From: Changcheng Deng <deng.changcheng@zte.com.cn>
>>
>> There is a regular need in the kernel to provide a way to declare having
>> a dynamically sized set of trailing elements in a structure. Kernel code
>> should always use "flexible array members" for these cases. The older
>> style of one-element or zero-length arrays should no longer be used.
>> Reference:
>> https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays 
>>
>>
>> Reported-by: Zeal Robot <zealci@zte.com.cn>
>> Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>
>> ---
>>   drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h 
>> b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
>> index 482ba84a728d..d7c38fbc533e 100644
>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
>> @@ -310,7 +310,7 @@ struct cdit_header {
>>       uint32_t    creator_revision;
>>       uint32_t    total_entries;
>>       uint16_t    num_domains;
>> -    uint8_t        entry[1];
>> +    uint8_t        entry[];
>>   };
>>     #pragma pack()
>
Re: [PATCH] drm/amdkfd: Replace one-element array with flexible-array member
Posted by Christian König 4 years, 4 months ago
Well in that case somebody could argue that we should probably remove 
the structure altogether.

Regards,
Christian.

Am 18.02.22 um 17:15 schrieb Felix Kuehling:
> It looks like this structure isn't being used at all. So I'm OK with 
> this change, in case we ever use it in the future.
>
> Regards,
>   Felix
>
>
> Am 2022-02-18 um 02:47 schrieb Christian König:
>> Felix need to comment as well, but I don't think that this will work 
>> that easily.
>>
>> By changing the entry from 1 to 0 your are also changing the size of 
>> the structure.
>>
>> Regards,
>> Christian.
>>
>> Am 18.02.22 um 04:09 schrieb cgel.zte@gmail.com:
>>> From: Changcheng Deng <deng.changcheng@zte.com.cn>
>>>
>>> There is a regular need in the kernel to provide a way to declare 
>>> having
>>> a dynamically sized set of trailing elements in a structure. Kernel 
>>> code
>>> should always use "flexible array members" for these cases. The older
>>> style of one-element or zero-length arrays should no longer be used.
>>> Reference:
>>> https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays 
>>>
>>>
>>> Reported-by: Zeal Robot <zealci@zte.com.cn>
>>> Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>
>>> ---
>>>   drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h 
>>> b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
>>> index 482ba84a728d..d7c38fbc533e 100644
>>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
>>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.h
>>> @@ -310,7 +310,7 @@ struct cdit_header {
>>>       uint32_t    creator_revision;
>>>       uint32_t    total_entries;
>>>       uint16_t    num_domains;
>>> -    uint8_t        entry[1];
>>> +    uint8_t        entry[];
>>>   };
>>>     #pragma pack()
>>