]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
crypto: remove nth_page() usage within SG entry
authorDavid Hildenbrand <david@redhat.com>
Mon, 1 Sep 2025 15:03:54 +0000 (17:03 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 12 Sep 2025 00:25:37 +0000 (17:25 -0700)
It's no longer required to use nth_page() when iterating pages within a
single SG entry, so let's drop the nth_page() usage.

Link: https://lkml.kernel.org/r/20250901150359.867252-34-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
crypto/ahash.c
crypto/scompress.c
include/crypto/scatterwalk.h

index a227793d2c5b581c293cf86d657e4662f1db6a32..dfb4f5476428fcd0ab94fe08da924df9f105aed3 100644 (file)
@@ -88,7 +88,7 @@ static int hash_walk_new_entry(struct crypto_hash_walk *walk)
 
        sg = walk->sg;
        walk->offset = sg->offset;
-       walk->pg = nth_page(sg_page(walk->sg), (walk->offset >> PAGE_SHIFT));
+       walk->pg = sg_page(walk->sg) + (walk->offset >> PAGE_SHIFT);
        walk->offset = offset_in_page(walk->offset);
        walk->entrylen = sg->length;
 
@@ -226,7 +226,7 @@ int shash_ahash_digest(struct ahash_request *req, struct shash_desc *desc)
        if (!IS_ENABLED(CONFIG_HIGHMEM))
                return crypto_shash_digest(desc, data, nbytes, req->result);
 
-       page = nth_page(page, offset >> PAGE_SHIFT);
+       page += offset >> PAGE_SHIFT;
        offset = offset_in_page(offset);
 
        if (nbytes > (unsigned int)PAGE_SIZE - offset)
index c651e7f2197a97855d72c8dbeb7a840aea7e7361..1a7ed8ae65b074d6a040ecac489277f6b7c0a449 100644 (file)
@@ -198,7 +198,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
                } else
                        return -ENOSYS;
 
-               dpage = nth_page(dpage, doff / PAGE_SIZE);
+               dpage += doff / PAGE_SIZE;
                doff = offset_in_page(doff);
 
                n = (dlen - 1) / PAGE_SIZE;
@@ -220,12 +220,12 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
                        } else
                                break;
 
-                       spage = nth_page(spage, soff / PAGE_SIZE);
+                       spage = spage + soff / PAGE_SIZE;
                        soff = offset_in_page(soff);
 
                        n = (slen - 1) / PAGE_SIZE;
                        n += (offset_in_page(slen - 1) + soff) / PAGE_SIZE;
-                       if (PageHighMem(nth_page(spage, n)) &&
+                       if (PageHighMem(spage + n) &&
                            size_add(soff, slen) > PAGE_SIZE)
                                break;
                        src = kmap_local_page(spage) + soff;
@@ -270,7 +270,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
                        if (dlen <= PAGE_SIZE)
                                break;
                        dlen -= PAGE_SIZE;
-                       dpage = nth_page(dpage, 1);
+                       dpage++;
                }
        }
 
index 15ab743f68c8f36f5c9f5ad8673c876c8edc7976..83d14376ff2bc8b5a710f290cf8a325072216396 100644 (file)
@@ -159,7 +159,7 @@ static inline void scatterwalk_map(struct scatter_walk *walk)
        if (IS_ENABLED(CONFIG_HIGHMEM)) {
                struct page *page;
 
-               page = nth_page(base_page, offset >> PAGE_SHIFT);
+               page = base_page + (offset >> PAGE_SHIFT);
                offset = offset_in_page(offset);
                addr = kmap_local_page(page) + offset;
        } else {
@@ -259,7 +259,7 @@ static inline void scatterwalk_done_dst(struct scatter_walk *walk,
                end += (offset_in_page(offset) + offset_in_page(nbytes) +
                        PAGE_SIZE - 1) >> PAGE_SHIFT;
                for (i = start; i < end; i++)
-                       flush_dcache_page(nth_page(base_page, i));
+                       flush_dcache_page(base_page + i);
        }
        scatterwalk_advance(walk, nbytes);
 }