Re: [PATCH] staging: vc04_services: merge vchiq_kern_lib.c into vchiq_arm.c

From: Stefan Wahren
Date: Sat Feb 10 2018 - 12:36:04 EST


> Arnd Bergmann <arnd@xxxxxxxx> hat am 2. Februar 2018 um 16:01 geschrieben:
>
>
> There are two incompatible definitions of 'vchiq_instance_struct', so
> passing them through vchiq_initialise(), vchiq_connect() or another
> such interface is broken, as shown by building the driver with link-time
> optimizations:
>
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_if.h:129:0: error: type of 'vchiq_initialise' does not match original declaration [-Werror=lto-type-mismatch]
> extern VCHIQ_STATUS_T vchiq_initialise(VCHIQ_INSTANCE_T *pinstance);
>
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c:68:0: note: 'vchiq_initialise' was previously declared here
> VCHIQ_STATUS_T vchiq_initialise(VCHIQ_INSTANCE_T *instance_out)
>
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c:68:0: note: code may be misoptimized unless -fno-strict-aliasing is used
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_if.h:131:0: error: type of 'vchiq_connect' does not match original declaration [-Werror=lto-type-mismatch]
> extern VCHIQ_STATUS_T vchiq_connect(VCHIQ_INSTANCE_T instance);
>
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c:168:0: note: 'vchiq_connect' was previously declared here
> VCHIQ_STATUS_T vchiq_connect(VCHIQ_INSTANCE_T instance)
>
> It's possible that only one of the two sides actually access the members,
> but it's clear that they need to agree on the layout. The easiest way
> to achieve this appears to be to merge the two files into one. I tried
> moving the structure definition into a shared header first, but ended
> up running into too many interdependencies that way.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Acked-by: Stefan Wahren <stefan.wahren@xxxxxxxx>