Christophe, On Sat, Mar 24, 2018 at 9:10 PM, LEROY Christophe <christophe.leroy@xxxxxx> wrote: > Mathieu Malaterre <malat@xxxxxxxxxx> a écrit : > > >> On Fri, Mar 23, 2018 at 1:19 PM, christophe leroy >> <christophe.leroy@xxxxxx> wrote: >>> >>> >>> >>> Le 22/03/2018 à 21:20, Mathieu Malaterre a écrit : >>>> >>>> >>>> Some functions prototypes were missing for the non-altivec code. Add the >>>> missing prototypes directly in xor_vmx, fix warnings treated as errors >>>> with >>>> W=1: >>>> >>>> arch/powerpc/lib/xor_vmx_glue.c:18:6: error: no previous prototype >>>> for >>>> ‘xor_altivec_2’ [-Werror=missing-prototypes] >>>> arch/powerpc/lib/xor_vmx_glue.c:29:6: error: no previous prototype >>>> for >>>> ‘xor_altivec_3’ [-Werror=missing-prototypes] >>>> arch/powerpc/lib/xor_vmx_glue.c:40:6: error: no previous prototype >>>> for >>>> ‘xor_altivec_4’ [-Werror=missing-prototypes] >>>> arch/powerpc/lib/xor_vmx_glue.c:52:6: error: no previous prototype >>>> for >>>> ‘xor_altivec_5’ [-Werror=missing-prototypes] >>>> >>>> Signed-off-by: Mathieu Malaterre <malat@xxxxxxxxxx> >>>> --- >>>> arch/powerpc/lib/xor_vmx.h | 14 ++++++++++++++ >>>> 1 file changed, 14 insertions(+) >>>> >>>> diff --git a/arch/powerpc/lib/xor_vmx.h b/arch/powerpc/lib/xor_vmx.h >>>> index 5c2b0839b179..2173e3c84151 100644 >>>> --- a/arch/powerpc/lib/xor_vmx.h >>>> +++ b/arch/powerpc/lib/xor_vmx.h >>>> @@ -19,3 +19,17 @@ void __xor_altivec_4(unsigned long bytes, unsigned >>>> long >>>> *v1_in, >>>> void __xor_altivec_5(unsigned long bytes, unsigned long *v1_in, >>>> unsigned long *v2_in, unsigned long *v3_in, >>>> unsigned long *v4_in, unsigned long >>>> *v5_in); >>>> + >>>> +void xor_altivec_2(unsigned long bytes, unsigned long *v1_in, >>>> + unsigned long *v2_in); >>>> + >>> >>> >>> >>> Only used in one place, should be static instead of adding it in a .h >>> >>> Same for the other ones. >> >> >> $ git grep xor_altivec_2 >> [...] >> arch/powerpc/lib/xor_vmx_glue.c:EXPORT_SYMBOL(xor_altivec_2); >> >> Are you sure I can change this function to static ? > > > Yes you are right. But in fact those fonctions are already defined in > asm/xor. h > So you just need to add the missing #include I originally tried it, but this leads to: CC arch/powerpc/lib/xor_vmx_glue.o In file included from arch/powerpc/lib/xor_vmx_glue.c:16:0: ./arch/powerpc/include/asm/xor.h:39:15: error: variable ‘xor_block_altivec’ has initializer but incomplete type static struct xor_block_template xor_block_altivec = { ^~~~~~~~~~~~~~~~~~ ./arch/powerpc/include/asm/xor.h:40:2: error: unknown field ‘name’ specified in initializer .name = "altivec", ^ [...] The file <asm/xor.h> (powerpc) is pretty much expected to be included after <include/linux/raid/xor.h>. I did not want to tweak <asm/xor.h> to test for #ifdef _XOR_H just before #ifdef _XOR_H static struct xor_block_template xor_block_altivec = { [...] since this seems like a hack to me. Is this ok to test for #ifdef _XOR_H in <arch/powerpc/include/asm/xor.h> ? > Christophe > > >> >>> Christophe >>> >>> >>>> +void xor_altivec_3(unsigned long bytes, unsigned long *v1_in, >>>> + unsigned long *v2_in, unsigned long >>>> *v3_in); >>>> + >>>> +void xor_altivec_4(unsigned long bytes, unsigned long *v1_in, >>>> + unsigned long *v2_in, unsigned long *v3_in, >>>> + unsigned long *v4_in); >>>> + >>>> +void xor_altivec_5(unsigned long bytes, unsigned long *v1_in, >>>> + unsigned long *v2_in, unsigned long *v3_in, >>>> + unsigned long *v4_in, unsigned long >>>> *v5_in); >>>> >>> >>> --- >>> L'absence de virus dans ce courrier électronique a été vérifiée par le >>> logiciel antivirus Avast. >>> https://www.avast.com/antivirus >>> > > -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html