2023-01-17 17:47:49

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] staging: vchiq_arm: fix enum vchiq_status return types

From: Arnd Bergmann <[email protected]>

gcc-13 notices a type mismatch between function declaration
and definition for a few functions that have been converted
from returning vchiq specific status values to regular error
codes:

drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:662:5: error: conflicting types for 'vchiq_initialise' due to enum/integer mismatch; have 'int(struct vchiq_instance **)' [-Werror=enum-int-mismatch]
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1411:1: error: conflicting types for 'vchiq_use_internal' due to enum/integer mismatch; have 'int(struct vchiq_state *, struct vchiq_service *, enum USE_TYPE_E)' [-Werror=enum-int-mismatch]
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1468:1: error: conflicting types for 'vchiq_release_internal' due to enum/integer mismatch; have 'int(struct vchiq_state *, struct vchiq_service *)' [-Werror=enum-int-mismatch]

Change the declarations to match the actual function definition.

Fixes: a9fbd828be7f ("staging: vchiq_arm: drop enum vchiq_status from vchiq_*_internal")
Signed-off-by: Arnd Bergmann <[email protected]>
---
.../staging/vc04_services/include/linux/raspberrypi/vchiq.h | 2 +-
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
index db1441c0cc66..690ab7165b2c 100644
--- a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
+++ b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
@@ -86,7 +86,7 @@ struct vchiq_service_params_kernel {

struct vchiq_instance;

-extern enum vchiq_status vchiq_initialise(struct vchiq_instance **pinstance);
+extern int vchiq_initialise(struct vchiq_instance **pinstance);
extern enum vchiq_status vchiq_shutdown(struct vchiq_instance *instance);
extern enum vchiq_status vchiq_connect(struct vchiq_instance *instance);
extern enum vchiq_status vchiq_open_service(struct vchiq_instance *instance,
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
index 2851ef6b9cd0..cd20eb18f275 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
@@ -100,10 +100,10 @@ vchiq_dump_platform_use_state(struct vchiq_state *state);
extern void
vchiq_dump_service_use_state(struct vchiq_state *state);

-extern enum vchiq_status
+extern int
vchiq_use_internal(struct vchiq_state *state, struct vchiq_service *service,
enum USE_TYPE_E use_type);
-extern enum vchiq_status
+extern int
vchiq_release_internal(struct vchiq_state *state,
struct vchiq_service *service);

--
2.39.0


2023-01-18 12:37:11

by Stefan Wahren

[permalink] [raw]
Subject: Re: [PATCH] staging: vchiq_arm: fix enum vchiq_status return types

Hi Arnd,

Am 17.01.23 um 17:39 schrieb Arnd Bergmann:
> From: Arnd Bergmann <[email protected]>
>
> gcc-13 notices a type mismatch between function declaration
> and definition for a few functions that have been converted
> from returning vchiq specific status values to regular error
> codes:
>
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:662:5: error: conflicting types for 'vchiq_initialise' due to enum/integer mismatch; have 'int(struct vchiq_instance **)' [-Werror=enum-int-mismatch]
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1411:1: error: conflicting types for 'vchiq_use_internal' due to enum/integer mismatch; have 'int(struct vchiq_state *, struct vchiq_service *, enum USE_TYPE_E)' [-Werror=enum-int-mismatch]
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1468:1: error: conflicting types for 'vchiq_release_internal' due to enum/integer mismatch; have 'int(struct vchiq_state *, struct vchiq_service *)' [-Werror=enum-int-mismatch]
>
> Change the declarations to match the actual function definition.
>
> Fixes: a9fbd828be7f ("staging: vchiq_arm: drop enum vchiq_status from vchiq_*_internal")
> Signed-off-by: Arnd Bergmann <[email protected]>

thanks for fixing this.

Greg applied a series [1] from Umang which completely removes this enum
completely. This series has been applied to today and will likely cause
a conflict tomorrow in linux-next.

[1] -
https://lore.kernel.org/linux-arm-kernel/[email protected]/T/

> ---
> .../staging/vc04_services/include/linux/raspberrypi/vchiq.h | 2 +-
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
> index db1441c0cc66..690ab7165b2c 100644
> --- a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
> +++ b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
> @@ -86,7 +86,7 @@ struct vchiq_service_params_kernel {
>
> struct vchiq_instance;
>
> -extern enum vchiq_status vchiq_initialise(struct vchiq_instance **pinstance);
> +extern int vchiq_initialise(struct vchiq_instance **pinstance);
> extern enum vchiq_status vchiq_shutdown(struct vchiq_instance *instance);
> extern enum vchiq_status vchiq_connect(struct vchiq_instance *instance);
> extern enum vchiq_status vchiq_open_service(struct vchiq_instance *instance,
> diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
> index 2851ef6b9cd0..cd20eb18f275 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
> @@ -100,10 +100,10 @@ vchiq_dump_platform_use_state(struct vchiq_state *state);
> extern void
> vchiq_dump_service_use_state(struct vchiq_state *state);
>
> -extern enum vchiq_status
> +extern int
> vchiq_use_internal(struct vchiq_state *state, struct vchiq_service *service,
> enum USE_TYPE_E use_type);
> -extern enum vchiq_status
> +extern int
> vchiq_release_internal(struct vchiq_state *state,
> struct vchiq_service *service);
>

2023-01-18 13:35:31

by Umang Jain

[permalink] [raw]
Subject: Re: [PATCH] staging: vchiq_arm: fix enum vchiq_status return types

Hi,

On 1/18/23 5:08 PM, Stefan Wahren wrote:
> Hi Arnd,
>
> Am 17.01.23 um 17:39 schrieb Arnd Bergmann:
>> From: Arnd Bergmann <[email protected]>
>>
>> gcc-13 notices a type mismatch between function declaration
>> and definition for a few functions that have been converted
>> from returning vchiq specific status values to regular error
>> codes:
>>
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:662:5:
>> error: conflicting types for 'vchiq_initialise' due to enum/integer
>> mismatch; have 'int(struct vchiq_instance **)'
>> [-Werror=enum-int-mismatch]
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1411:1:
>> error: conflicting types for 'vchiq_use_internal' due to enum/integer
>> mismatch; have 'int(struct vchiq_state *, struct vchiq_service *,
>> enum USE_TYPE_E)' [-Werror=enum-int-mismatch]
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1468:1:
>> error: conflicting types for 'vchiq_release_internal' due to
>> enum/integer mismatch; have 'int(struct vchiq_state *, struct
>> vchiq_service *)' [-Werror=enum-int-mismatch]
>>
>> Change the declarations to match the actual function definition.
>>
>> Fixes: a9fbd828be7f ("staging: vchiq_arm: drop enum vchiq_status from
>> vchiq_*_internal")
>> Signed-off-by: Arnd Bergmann <[email protected]>
>
> thanks for fixing this.
>
> Greg applied a series [1] from Umang which completely removes this
> enum completely. This series has been applied to today and will likely
> cause a conflict tomorrow in linux-next.

Yes, the series was applied today.

Has this patch (By Arnd) already applied to linux-next? I am not sure if
I understand where the conflict will get originated ..

>
> [1] -
> https://lore.kernel.org/linux-arm-kernel/[email protected]/T/
>
>> ---
>>   .../staging/vc04_services/include/linux/raspberrypi/vchiq.h | 2 +-
>>   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h | 4 ++--
>>   2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git
>> a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
>> b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
>> index db1441c0cc66..690ab7165b2c 100644
>> --- a/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
>> +++ b/drivers/staging/vc04_services/include/linux/raspberrypi/vchiq.h
>> @@ -86,7 +86,7 @@ struct vchiq_service_params_kernel {
>>     struct vchiq_instance;
>>   -extern enum vchiq_status vchiq_initialise(struct vchiq_instance
>> **pinstance);
>> +extern int vchiq_initialise(struct vchiq_instance **pinstance);
>>   extern enum vchiq_status vchiq_shutdown(struct vchiq_instance
>> *instance);
>>   extern enum vchiq_status vchiq_connect(struct vchiq_instance
>> *instance);
>>   extern enum vchiq_status vchiq_open_service(struct vchiq_instance
>> *instance,
>> diff --git
>> a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
>> b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
>> index 2851ef6b9cd0..cd20eb18f275 100644
>> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
>> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h
>> @@ -100,10 +100,10 @@ vchiq_dump_platform_use_state(struct
>> vchiq_state *state);
>>   extern void
>>   vchiq_dump_service_use_state(struct vchiq_state *state);
>>   -extern enum vchiq_status
>> +extern int
>>   vchiq_use_internal(struct vchiq_state *state, struct vchiq_service
>> *service,
>>              enum USE_TYPE_E use_type);
>> -extern enum vchiq_status
>> +extern int
>>   vchiq_release_internal(struct vchiq_state *state,
>>                  struct vchiq_service *service);

2023-01-18 13:39:36

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH] staging: vchiq_arm: fix enum vchiq_status return types

On Wed, Jan 18, 2023 at 05:33:15PM +0530, Umang Jain wrote:
> Hi,
>
> On 1/18/23 5:08 PM, Stefan Wahren wrote:
> > Hi Arnd,
> >
> > Am 17.01.23 um 17:39 schrieb Arnd Bergmann:
> > > From: Arnd Bergmann <[email protected]>
> > >
> > > gcc-13 notices a type mismatch between function declaration
> > > and definition for a few functions that have been converted
> > > from returning vchiq specific status values to regular error
> > > codes:
> > >
> > > drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:662:5:
> > > error: conflicting types for 'vchiq_initialise' due to enum/integer
> > > mismatch; have 'int(struct vchiq_instance **)'
> > > [-Werror=enum-int-mismatch]
> > > drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1411:1:
> > > error: conflicting types for 'vchiq_use_internal' due to
> > > enum/integer mismatch; have 'int(struct vchiq_state *, struct
> > > vchiq_service *, enum USE_TYPE_E)' [-Werror=enum-int-mismatch]
> > > drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:1468:1:
> > > error: conflicting types for 'vchiq_release_internal' due to
> > > enum/integer mismatch; have 'int(struct vchiq_state *, struct
> > > vchiq_service *)' [-Werror=enum-int-mismatch]
> > >
> > > Change the declarations to match the actual function definition.
> > >
> > > Fixes: a9fbd828be7f ("staging: vchiq_arm: drop enum vchiq_status
> > > from vchiq_*_internal")
> > > Signed-off-by: Arnd Bergmann <[email protected]>
> >
> > thanks for fixing this.
> >
> > Greg applied a series [1] from Umang which completely removes this enum
> > completely. This series has been applied to today and will likely cause
> > a conflict tomorrow in linux-next.
>
> Yes, the series was applied today.
>
> Has this patch (By Arnd) already applied to linux-next? I am not sure if I
> understand where the conflict will get originated ..

I've applied Arnd's patch to my staging-linus branch and it will go
there for 6.2-final. I'll handle the merge into my other branch when
that happens.

thanks,

greg k-h