Re: [PATCH 14/19] powerpc/altivec: Add missing prototypes for altivec
From: Mathieu Malaterre <hidden>
Date: 2018-03-27 08:40:21
Also in:
lkml
Christophe, On Sat, Mar 24, 2018 at 9:10 PM, LEROY Christophe [off-list ref] wrote:
Mathieu Malaterre [off-list ref] a =C3=A9crit :quoted
On Fri, Mar 23, 2018 at 1:19 PM, christophe leroy [off-list ref] wrote:quoted
Le 22/03/2018 =C3=A0 21:20, Mathieu Malaterre a =C3=A9crit :quoted
Some functions prototypes were missing for the non-altivec code. Add t=
he
quoted
quoted
quoted
missing prototypes directly in xor_vmx, fix warnings treated as errors with W=3D1: arch/powerpc/lib/xor_vmx_glue.c:18:6: error: no previous prototype for =E2=80=98xor_altivec_2=E2=80=99 [-Werror=3Dmissing-prototypes] arch/powerpc/lib/xor_vmx_glue.c:29:6: error: no previous prototype for =E2=80=98xor_altivec_3=E2=80=99 [-Werror=3Dmissing-prototypes] arch/powerpc/lib/xor_vmx_glue.c:40:6: error: no previous prototype for =E2=80=98xor_altivec_4=E2=80=99 [-Werror=3Dmissing-prototypes] arch/powerpc/lib/xor_vmx_glue.c:52:6: error: no previous prototype for =E2=80=98xor_altivec_5=E2=80=99 [-Werror=3Dmissing-prototypes] Signed-off-by: Mathieu Malaterre <redacted> --- 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, unsignedlong *v1_in, void __xor_altivec_5(unsigned long bytes, unsigned long *v1_in, unsigned long *v2_in, unsigned long *v3_i=
n,
quoted
quoted
quoted
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
=E2=80=98xor_block_altivec=E2=80=99 has initializer but incomplete type
static struct xor_block_template xor_block_altivec =3D {
^~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/xor.h:40:2: error: unknown field =E2=80=98name=
=E2=80=99
specified in initializer
.name =3D "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 =3D {
[...]
since this seems like a hack to me.
Is this ok to test for #ifdef _XOR_H in <arch/powerpc/include/asm/xor.h> ?
Christophequoted
quoted
Christophequoted
+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_i=
n,
quoted
quoted
quoted
+ unsigned long *v4_in); + +void xor_altivec_5(unsigned long bytes, unsigned long *v1_in, + unsigned long *v2_in, unsigned long *v3_i=
n,
quoted
quoted
quoted
+ unsigned long *v4_in, unsigned long *v5_in);--- L'absence de virus dans ce courrier =C3=A9lectronique a =C3=A9t=C3=A9 v=
=C3=A9rifi=C3=A9e par le
quoted
quoted
logiciel antivirus Avast. https://www.avast.com/antivirus