Subject: Re: [PATCH v2 1/6] powerpc: rework sparse for lib/xor_vmx.c

From: Balbir Singh <[email-masked]>
Date: Wed, 27 Apr 2016 08:18:11 +1000

On 26/04/16 23:49, Daniel Axtens wrote:
> Sparse doesn't seem to be passing -maltivec around properly, leading
> to lots of errors:
> 
> .../include/altivec.h:34:2: error: Use the "-maltivec" flag to enable PowerPC AltiVec support
> arch/powerpc/lib/xor_vmx.c:27:16: error: Expected ; at end of declaration
> arch/powerpc/lib/xor_vmx.c:27:16: error: got signed
> arch/powerpc/lib/xor_vmx.c:60:9: error: No right hand side of '*'-expression
> arch/powerpc/lib/xor_vmx.c:60:9: error: Expected ; at end of statement
> arch/powerpc/lib/xor_vmx.c:60:9: error: got v1_in
> ...
> arch/powerpc/lib/xor_vmx.c:87:9: error: too many errors
> 
> Only include the altivec.h header for non-__CHECKER__ builds.
> For builds with __CHECKER__, make up some stubs instead, as
> suggested by Balbir. (The vector size of 16 is arbitrary.)
> 
> Suggested-by: Balbir Singh <[email-masked]>
> Signed-off-by: Daniel Axtens <[email-masked]>
> ---
> This version works, which is - embarassingly - an improvement over
> v1. I should test things better, sorry.
> ---
>  arch/powerpc/lib/xor_vmx.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/arch/powerpc/lib/xor_vmx.c b/arch/powerpc/lib/xor_vmx.c
> index 07f49f1568e5..f9de69a04e88 100644
> --- a/arch/powerpc/lib/xor_vmx.c
> +++ b/arch/powerpc/lib/xor_vmx.c
> @@ -17,7 +17,17 @@
>   *
>   * Author: Anton Blanchard <[email-masked]>
>   */
> +
> +/*
> + * Sparse (as at v0.5.0) gets very, very confused by this file.
> + * Make it a bit simpler for it.
> + */
> +#if !defined(__CHECKER__)
>  #include <altivec.h>
> +#else
> +#define vec_xor(a, b) a ^ b
> +#define vector __attribute__((vector_size(16)))
> +#endif
>  
>  #include <linux/preempt.h>
>  #include <linux/export.h>
> 

Yes, this worked for me

Tested-by: Balbir Singh <[email-masked]>