Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

raid6: neon: add missing prototypes

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>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/20230517132220.937200-1-arnd@kernel.org

authored by

Arnd Bergmann and committed by
Song Liu
3de13550 3dbd53c7

+25 -7
+22
lib/raid6/neon.h
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + 3 + void raid6_neon1_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); 4 + void raid6_neon1_xor_syndrome_real(int disks, int start, int stop, 5 + unsigned long bytes, void **ptrs); 6 + void raid6_neon2_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); 7 + void raid6_neon2_xor_syndrome_real(int disks, int start, int stop, 8 + unsigned long bytes, void **ptrs); 9 + void raid6_neon4_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); 10 + void raid6_neon4_xor_syndrome_real(int disks, int start, int stop, 11 + unsigned long bytes, void **ptrs); 12 + void raid6_neon8_gen_syndrome_real(int disks, unsigned long bytes, void **ptrs); 13 + void raid6_neon8_xor_syndrome_real(int disks, int start, int stop, 14 + unsigned long bytes, void **ptrs); 15 + void __raid6_2data_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dp, 16 + uint8_t *dq, const uint8_t *pbmul, 17 + const uint8_t *qmul); 18 + 19 + void __raid6_datap_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dq, 20 + const uint8_t *qmul); 21 + 22 +
+1
lib/raid6/neon.uc
··· 25 25 */ 26 26 27 27 #include <arm_neon.h> 28 + #include "neon.h" 28 29 29 30 typedef uint8x16_t unative_t; 30 31
+1 -7
lib/raid6/recov_neon.c
··· 8 8 9 9 #ifdef __KERNEL__ 10 10 #include <asm/neon.h> 11 + #include "neon.h" 11 12 #else 12 13 #define kernel_neon_begin() 13 14 #define kernel_neon_end() ··· 19 18 { 20 19 return cpu_has_neon(); 21 20 } 22 - 23 - void __raid6_2data_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dp, 24 - uint8_t *dq, const uint8_t *pbmul, 25 - const uint8_t *qmul); 26 - 27 - void __raid6_datap_recov_neon(int bytes, uint8_t *p, uint8_t *q, uint8_t *dq, 28 - const uint8_t *qmul); 29 21 30 22 static void raid6_2data_recov_neon(int disks, size_t bytes, int faila, 31 23 int failb, void **ptrs)
+1
lib/raid6/recov_neon_inner.c
··· 5 5 */ 6 6 7 7 #include <arm_neon.h> 8 + #include "neon.h" 8 9 9 10 #ifdef CONFIG_ARM 10 11 /*