Regressions on riscv defconfig builds with gcc-13 and clang failed on the Linux next-20250623 tag.
Regressions found on riscv * riscv, build - clang-20-defconfig - gcc-13-defconfig - rustclang-nightly-lkftconfig-kselftest - rustgcc-lkftconfig-kselftest - rv32-clang-20-defconfig
Regression Analysis: - New regression? Yes - Reproducibility? Yes
Build regression: riscv defconfig raid6 recov_rvv.c use of undeclared identifier 'raid6_empty_zero_page'
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
## Build log lib/raid6/recov_rvv.c:168:24: error: use of undeclared identifier 'raid6_empty_zero_page' 168 | ptrs[faila] = (void *)raid6_empty_zero_page; | ^ /lib/raid6/recov_rvv.c:171:24: error: use of undeclared identifier 'raid6_empty_zero_page' 171 | ptrs[failb] = (void *)raid6_empty_zero_page; | ^ /lib/raid6/recov_rvv.c:206:24: error: use of undeclared identifier 'raid6_empty_zero_page' 206 | ptrs[faila] = (void *)raid6_empty_zero_page; | ^ 3 errors generated.
## Source * Kernel version: 6.16.0-rc3-next-20250623 * Git tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next.git * Git sha: f817b6dd2b62d921a6cdc0a3ac599cd1851f343c * Git describe: next-20250623 * Project details: https://regressions.linaro.org/lkft/linux-next-master/next-20250623/ * Architectures: riscv * Toolchains: gcc-13 * Kconfigs: defconfig
## Build arm64 * Build log: https://qa-reports.linaro.org/api/testruns/28829977/log_file/ * Build details: https://regressions.linaro.org/lkft/linux-next-master/next-20250623/build/gc... * Build link: https://storage.tuxsuite.com/public/linaro/lkft/builds/2ytmqfZ6v24dxq5kjorJb... * Kernel config: https://storage.tuxsuite.com/public/linaro/lkft/builds/2ytmqfZ6v24dxq5kjorJb...
-- Linaro LKFT https://lkft.linaro.org
Hi,
On Mon, Jun 23, 2025 at 8:32 PM Naresh Kamboju naresh.kamboju@linaro.org wrote:
Regressions on riscv defconfig builds with gcc-13 and clang failed on the Linux next-20250623 tag.
Regressions found on riscv
- riscv, build
- clang-20-defconfig
- gcc-13-defconfig
- rustclang-nightly-lkftconfig-kselftest
- rustgcc-lkftconfig-kselftest
- rv32-clang-20-defconfig
Regression Analysis:
- New regression? Yes
- Reproducibility? Yes
Build regression: riscv defconfig raid6 recov_rvv.c use of undeclared identifier 'raid6_empty_zero_page'
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
## Build log lib/raid6/recov_rvv.c:168:24: error: use of undeclared identifier 'raid6_empty_zero_page' 168 | ptrs[faila] = (void *)raid6_empty_zero_page; | ^ /lib/raid6/recov_rvv.c:171:24: error: use of undeclared identifier 'raid6_empty_zero_page' 171 | ptrs[failb] = (void *)raid6_empty_zero_page; | ^ /lib/raid6/recov_rvv.c:206:24: error: use of undeclared identifier 'raid6_empty_zero_page' 206 | ptrs[faila] = (void *)raid6_empty_zero_page; | ^ 3 errors generated.
## Source
- Kernel version: 6.16.0-rc3-next-20250623
- Git tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next.git
- Git sha: f817b6dd2b62d921a6cdc0a3ac599cd1851f343c
- Git describe: next-20250623
- Project details:
https://regressions.linaro.org/lkft/linux-next-master/next-20250623/
- Architectures: riscv
- Toolchains: gcc-13
- Kconfigs: defconfig
## Build arm64
- Build log: https://qa-reports.linaro.org/api/testruns/28829977/log_file/
- Build details:
https://regressions.linaro.org/lkft/linux-next-master/next-20250623/build/gc...
- Build link: https://storage.tuxsuite.com/public/linaro/lkft/builds/2ytmqfZ6v24dxq5kjorJb...
- Kernel config:
https://storage.tuxsuite.com/public/linaro/lkft/builds/2ytmqfZ6v24dxq5kjorJb...
-- Linaro LKFT https://lkft.linaro.org
The following diff fixes the issue and to me should be squashed into commit 44add101db9e5 ("lib/raid6: replace custom zero page with ZERO_PAGE") so adding Herbert as cc:
diff --git a/lib/raid6/recov_rvv.c b/lib/raid6/recov_rvv.c index f29303795ccfe..5d54c4b437df7 100644 --- a/lib/raid6/recov_rvv.c +++ b/lib/raid6/recov_rvv.c @@ -165,10 +165,10 @@ static void raid6_2data_recov_rvv(int disks, size_t bytes, int faila, * delta p and delta q */ dp = (u8 *)ptrs[faila]; - ptrs[faila] = (void *)raid6_empty_zero_page; + ptrs[faila] = raid6_get_zero_page(); ptrs[disks - 2] = dp; dq = (u8 *)ptrs[failb]; - ptrs[failb] = (void *)raid6_empty_zero_page; + ptrs[failb] = raid6_get_zero_page(); ptrs[disks - 1] = dq;
raid6_call.gen_syndrome(disks, bytes, ptrs); @@ -203,7 +203,7 @@ static void raid6_datap_recov_rvv(int disks, size_t bytes, int faila, * Use the dead data page as temporary storage for delta q */ dq = (u8 *)ptrs[faila]; - ptrs[faila] = (void *)raid6_empty_zero_page; + ptrs[faila] = raid6_get_zero_page(); ptrs[disks - 1] = dq;
raid6_call.gen_syndrome(disks, bytes, ptrs);
Thanks,
Alex