]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
raid6: remove raid6_get_zero_page
authorChristoph Hellwig <hch@lst.de>
Mon, 18 May 2026 05:17:48 +0000 (07:17 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 29 May 2026 04:24:53 +0000 (21:24 -0700)
Just open code it as in other places in the kernel.

Link: https://lore.kernel.org/20260518051804.462141-6-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Ard Biesheuvel <ardb@kernel.org> # kunit only on arm64
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Alexandre Ghiti <alex@ghiti.fr>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: "Borislav Petkov (AMD)" <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chris Mason <clm@fb.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: David Sterba <dsterba@suse.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Li Nan <linan122@huawei.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Song Liu <song@kernel.org>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
crypto/async_tx/async_pq.c
crypto/async_tx/async_raid6_recov.c
include/linux/raid/pq.h
lib/raid/raid6/arm/recov_neon.c
lib/raid/raid6/loongarch/recov_loongarch_simd.c
lib/raid/raid6/recov.c
lib/raid/raid6/riscv/recov_rvv.c
lib/raid/raid6/s390/recov_s390xc.c
lib/raid/raid6/x86/recov_avx2.c
lib/raid/raid6/x86/recov_avx512.c
lib/raid/raid6/x86/recov_ssse3.c

index 9e4bb7fbde25e4791742fa051f1de30b8586dbde..0ce6f07b4e0dec9eeeeaea96f84af2a5a32330ad 100644 (file)
@@ -119,7 +119,7 @@ do_sync_gen_syndrome(struct page **blocks, unsigned int *offsets, int disks,
        for (i = 0; i < disks; i++) {
                if (blocks[i] == NULL) {
                        BUG_ON(i > disks - 3); /* P or Q can't be zero */
-                       srcs[i] = raid6_get_zero_page();
+                       srcs[i] = page_address(ZERO_PAGE(0));
                } else {
                        srcs[i] = page_address(blocks[i]) + offsets[i];
 
index 539ea5b378dcd6cba715a10a90e72235163a567c..f2dc6af6e6a70f335bc23d49d72ba8cd3a07828b 100644 (file)
@@ -414,7 +414,7 @@ async_raid6_2data_recov(int disks, size_t bytes, int faila, int failb,
                async_tx_quiesce(&submit->depend_tx);
                for (i = 0; i < disks; i++)
                        if (blocks[i] == NULL)
-                               ptrs[i] = raid6_get_zero_page();
+                               ptrs[i] = page_address(ZERO_PAGE(0));
                        else
                                ptrs[i] = page_address(blocks[i]) + offs[i];
 
@@ -497,7 +497,7 @@ async_raid6_datap_recov(int disks, size_t bytes, int faila,
                async_tx_quiesce(&submit->depend_tx);
                for (i = 0; i < disks; i++)
                        if (blocks[i] == NULL)
-                               ptrs[i] = raid6_get_zero_page();
+                               ptrs[i] = page_address(ZERO_PAGE(0));
                        else
                                ptrs[i] = page_address(blocks[i]) + offs[i];
 
index 5e7e743b83f594f7e442d9f307b6b407d115143b..f27a866c287f54e85c68462c332acf6f7090b7a5 100644 (file)
 #include <linux/blkdev.h>
 #include <linux/mm.h>
 
-/* This should be const but the raid6 code is too convoluted for that. */
-static inline void *raid6_get_zero_page(void)
-{
-       return page_address(ZERO_PAGE(0));
-}
-
 /* Routine choices */
 struct raid6_calls {
        void (*gen_syndrome)(int, size_t, void **);
index 5a48fcc762e82eca1de0fc91e5bf1d0303998cbe..9993bda5d3a6bcbc31ba9662c2fb30d08595d1b9 100644 (file)
@@ -29,10 +29,10 @@ static void raid6_2data_recov_neon(int disks, size_t bytes, int faila,
         * delta p and delta q
         */
        dp = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks - 2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks - 1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -66,7 +66,7 @@ static void raid6_datap_recov_neon(int disks, size_t bytes, int faila,
         * Use the dead data page as temporary storage for delta q
         */
        dq = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks - 1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
index eb3a1e79f01f7b3b5068ceefaef3d99f8464ebfd..4d45632096471d938deaf0e67671d2f0f9fcd7cf 100644 (file)
@@ -43,10 +43,10 @@ static void raid6_2data_recov_lsx(int disks, size_t bytes, int faila,
         * delta p and delta q
         */
        dp = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks - 2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks - 1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -198,7 +198,7 @@ static void raid6_datap_recov_lsx(int disks, size_t bytes, int faila,
         * Use the dead data page as temporary storage for delta q
         */
        dq = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks - 1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -317,10 +317,10 @@ static void raid6_2data_recov_lasx(int disks, size_t bytes, int faila,
         * delta p and delta q
         */
        dp = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks - 2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks - 1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -437,7 +437,7 @@ static void raid6_datap_recov_lasx(int disks, size_t bytes, int faila,
         * Use the dead data page as temporary storage for delta q
         */
        dq = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks - 1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
index 8d113196632ed5758bc947016eea68a7cad7e977..211e1df289633cc59c1fbc9986d3131e9473da82 100644 (file)
@@ -31,10 +31,10 @@ static void raid6_2data_recov_intx1(int disks, size_t bytes, int faila,
           Use the dead data pages as temporary storage for
           delta p and delta q */
        dp = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -72,7 +72,7 @@ static void raid6_datap_recov_intx1(int disks, size_t bytes, int faila,
        /* Compute syndrome with zero for the missing data page
           Use the dead data page as temporary storage for delta q */
        dq = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
index 40c393206b6a1773a8bf1e93b5d0012e579c08f2..f77d9c4306875a640d79071f086555d4f0c5925e 100644 (file)
@@ -158,10 +158,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] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks - 2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks - 1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -196,7 +196,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] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks - 1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
index 487018f811924e2f027b963d008b65811d46fa9e..0f32217b71233f7287c8462e50307ec6f19b244c 100644 (file)
@@ -34,10 +34,10 @@ static void raid6_2data_recov_s390xc(int disks, size_t bytes, int faila,
           Use the dead data pages as temporary storage for
           delta p and delta q */
        dp = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -81,7 +81,7 @@ static void raid6_datap_recov_s390xc(int disks, size_t bytes, int faila,
        /* Compute syndrome with zero for the missing data page
           Use the dead data page as temporary storage for delta q */
        dq = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
index 19fbd9c4dce63e239150c7e77a19cea0f29ef6a1..325310c81e1c33bcf174e557a5cd10f8fc1b0e4e 100644 (file)
@@ -28,10 +28,10 @@ static void raid6_2data_recov_avx2(int disks, size_t bytes, int faila,
           Use the dead data pages as temporary storage for
           delta p and delta q */
        dp = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -196,7 +196,7 @@ static void raid6_datap_recov_avx2(int disks, size_t bytes, int faila,
        /* Compute syndrome with zero for the missing data page
           Use the dead data page as temporary storage for delta q */
        dq = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
index 143f4976b2ade6c01cc6b695bef4be89b52face0..08de77fcb8bd7097c6f4bf2db8f60dd5ad68ba38 100644 (file)
@@ -37,10 +37,10 @@ static void raid6_2data_recov_avx512(int disks, size_t bytes, int faila,
         */
 
        dp = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -238,7 +238,7 @@ static void raid6_datap_recov_avx512(int disks, size_t bytes, int faila,
         */
 
        dq = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
index 146cdbf465bd7af6ea13a4ce7f23c7fc03abf3c5..002bef1e0847ad78c843af923341349ca98ef327 100644 (file)
@@ -30,10 +30,10 @@ static void raid6_2data_recov_ssse3(int disks, size_t bytes, int faila,
           Use the dead data pages as temporary storage for
           delta p and delta q */
        dp = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-2] = dp;
        dq = (u8 *)ptrs[failb];
-       ptrs[failb] = raid6_get_zero_page();
+       ptrs[failb] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);
@@ -203,7 +203,7 @@ static void raid6_datap_recov_ssse3(int disks, size_t bytes, int faila,
        /* Compute syndrome with zero for the missing data page
           Use the dead data page as temporary storage for delta q */
        dq = (u8 *)ptrs[faila];
-       ptrs[faila] = raid6_get_zero_page();
+       ptrs[faila] = page_address(ZERO_PAGE(0));
        ptrs[disks-1] = dq;
 
        raid6_call.gen_syndrome(disks, bytes, ptrs);