Message ID | 20230517132220.937200-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | raid6: neon: add missing prototypes | expand |
On Wed, May 17, 2023 at 6:22 AM Arnd Bergmann <arnd@kernel.org> wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > The raid6 syndrome functions are generated for different sizes and have > no generic prototype, while in the inner functions have a prototype > in a header that cannot be included from the correct file. In both > cases, the compiler warns about missing prototypes: > > lib/raid6/recov_neon_inner.c:27:6: warning: no previous prototype for '__raid6_2data_recov_neon' [-Wmissing-prototypes] > lib/raid6/recov_neon_inner.c:77:6: warning: no previous prototype for '__raid6_datap_recov_neon' [-Wmissing-prototypes] > lib/raid6/neon1.c:56:6: warning: no previous prototype for 'raid6_neon1_gen_syndrome_real' [-Wmissing-prototypes] > lib/raid6/neon1.c:86:6: warning: no previous prototype for 'raid6_neon1_xor_syndrome_real' [-Wmissing-prototypes] > lib/raid6/neon2.c:56:6: warning: no previous prototype for 'raid6_neon2_gen_syndrome_real' [-Wmissing-prototypes] > lib/raid6/neon2.c:97:6: warning: no previous prototype for 'raid6_neon2_xor_syndrome_real' [-Wmissing-prototypes] > lib/raid6/neon4.c:56:6: warning: no previous prototype for 'raid6_neon4_gen_syndrome_real' [-Wmissing-prototypes] > lib/raid6/neon4.c:119:6: warning: no previous prototype for 'raid6_neon4_xor_syndrome_real' [-Wmissing-prototypes] > lib/raid6/neon8.c:56:6: warning: no previous prototype for 'raid6_neon8_gen_syndrome_real' [-Wmissing-prototypes] > lib/raid6/neon8.c:163:6: warning: no previous prototype for 'raid6_neon8_xor_syndrome_real' [-Wmissing-prototypes] > > Add a new header file that contains the prototypes for both to avoid > the warnings. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Applied to md-next. Thanks! Song > --- > lib/raid6/neon.h | 22 ++++++++++++++++++++++ > lib/raid6/neon.uc | 1 + > lib/raid6/recov_neon.c | 8 +------- > lib/raid6/recov_neon_inner.c | 1 + > 4 files changed, 25 insertions(+), 7 deletions(-) > create mode 100644 lib/raid6/neon.h > > diff --git a/lib/raid6/neon.h b/lib/raid6/neon.h > new file mode 100644 > index 000000000000..2ca41ee9b499 > --- /dev/null > +++ b/lib/raid6/neon.h > @@ -0,0 +1,22 @@ > +// SPDX-License-Identifier: GPL-2.0-only > + > +void raid6_neon1_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); > +void raid6_neon1_xor_syndrome_real(int disks, int start, int stop, > + unsigned long bytes, void **ptrs); > +void raid6_neon2_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); > +void raid6_neon2_xor_syndrome_real(int disks, int start, int stop, > + unsigned long bytes, void **ptrs); > +void raid6_neon4_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); > +void raid6_neon4_xor_syndrome_real(int disks, int start, int stop, > + unsigned long bytes, void **ptrs); > +void raid6_neon8_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); > +void raid6_neon8_xor_syndrome_real(int disks, int start, int stop, > + unsigned long bytes, void **ptrs); > +void __raid6_2data_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dp, > + uint8_t *dq, const uint8_t *pbmul, > + const uint8_t *qmul); > + > +void __raid6_datap_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dq, > + const uint8_t *qmul); > + > + > diff --git a/lib/raid6/neon.uc b/lib/raid6/neon.uc > index b7c68030da4f..355270af0cd6 100644 > --- a/lib/raid6/neon.uc > +++ b/lib/raid6/neon.uc > @@ -25,6 +25,7 @@ > */ > > #include <arm_neon.h> > +#include "neon.h" > > typedef uint8x16_t unative_t; > > diff --git a/lib/raid6/recov_neon.c b/lib/raid6/recov_neon.c > index d6fba8bf8c0a..1bfc14174d4d 100644 > --- a/lib/raid6/recov_neon.c > +++ b/lib/raid6/recov_neon.c > @@ -8,6 +8,7 @@ > > #ifdef __KERNEL__ > #include <asm/neon.h> > +#include "neon.h" > #else > #define kernel_neon_begin() > #define kernel_neon_end() > @@ -19,13 +20,6 @@ static int raid6_has_neon(void) > return cpu_has_neon(); > } > > -void __raid6_2data_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dp, > - uint8_t *dq, const uint8_t *pbmul, > - const uint8_t *qmul); > - > -void __raid6_datap_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dq, > - const uint8_t *qmul); > - > static void raid6_2data_recov_neon(int disks, size_t bytes, int faila, > int failb, void **ptrs) > { > diff --git a/lib/raid6/recov_neon_inner.c b/lib/raid6/recov_neon_inner.c > index 90eb80d43790..f9e7e8f5a151 100644 > --- a/lib/raid6/recov_neon_inner.c > +++ b/lib/raid6/recov_neon_inner.c > @@ -5,6 +5,7 @@ > */ > > #include <arm_neon.h> > +#include "neon.h" > > #ifdef CONFIG_ARM > /* > -- > 2.39.2 >
diff --git a/lib/raid6/neon.h b/lib/raid6/neon.h new file mode 100644 index 000000000000..2ca41ee9b499 --- /dev/null +++ b/lib/raid6/neon.h @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-only + +void raid6_neon1_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); +void raid6_neon1_xor_syndrome_real(int disks, int start, int stop, + unsigned long bytes, void **ptrs); +void raid6_neon2_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); +void raid6_neon2_xor_syndrome_real(int disks, int start, int stop, + unsigned long bytes, void **ptrs); +void raid6_neon4_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); +void raid6_neon4_xor_syndrome_real(int disks, int start, int stop, + unsigned long bytes, void **ptrs); +void raid6_neon8_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); +void raid6_neon8_xor_syndrome_real(int disks, int start, int stop, + unsigned long bytes, void **ptrs); +void __raid6_2data_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dp, + uint8_t *dq, const uint8_t *pbmul, + const uint8_t *qmul); + +void __raid6_datap_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dq, + const uint8_t *qmul); + + diff --git a/lib/raid6/neon.uc b/lib/raid6/neon.uc index b7c68030da4f..355270af0cd6 100644 --- a/lib/raid6/neon.uc +++ b/lib/raid6/neon.uc @@ -25,6 +25,7 @@ */ #include <arm_neon.h> +#include "neon.h" typedef uint8x16_t unative_t; diff --git a/lib/raid6/recov_neon.c b/lib/raid6/recov_neon.c index d6fba8bf8c0a..1bfc14174d4d 100644 --- a/lib/raid6/recov_neon.c +++ b/lib/raid6/recov_neon.c @@ -8,6 +8,7 @@ #ifdef __KERNEL__ #include <asm/neon.h> +#include "neon.h" #else #define kernel_neon_begin() #define kernel_neon_end() @@ -19,13 +20,6 @@ static int raid6_has_neon(void) return cpu_has_neon(); } -void __raid6_2data_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dp, - uint8_t *dq, const uint8_t *pbmul, - const uint8_t *qmul); - -void __raid6_datap_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dq, - const uint8_t *qmul); - static void raid6_2data_recov_neon(int disks, size_t bytes, int faila, int failb, void **ptrs) { diff --git a/lib/raid6/recov_neon_inner.c b/lib/raid6/recov_neon_inner.c index 90eb80d43790..f9e7e8f5a151 100644 --- a/lib/raid6/recov_neon_inner.c +++ b/lib/raid6/recov_neon_inner.c @@ -5,6 +5,7 @@ */ #include <arm_neon.h> +#include "neon.h" #ifdef CONFIG_ARM /*