On Thu, Aug 28, 2025 at 12:01:36AM +0200, David Hildenbrand wrote: > 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. > > Cc: Herbert Xu <herb...@gondor.apana.org.au> > Cc: "David S. Miller" <da...@davemloft.net> > Signed-off-by: David Hildenbrand <da...@redhat.com>
LGTM, so: Reviewed-by: Lorenzo Stoakes <lorenzo.stoa...@oracle.com> > --- > crypto/ahash.c | 4 ++-- > crypto/scompress.c | 8 ++++---- > include/crypto/scatterwalk.h | 4 ++-- > 3 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/crypto/ahash.c b/crypto/ahash.c > index a227793d2c5b5..dfb4f5476428f 100644 > --- a/crypto/ahash.c > +++ b/crypto/ahash.c > @@ -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) > diff --git a/crypto/scompress.c b/crypto/scompress.c > index c651e7f2197a9..1a7ed8ae65b07 100644 > --- a/crypto/scompress.c > +++ b/crypto/scompress.c > @@ -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++; Can't help but chuckle when I see this simplification each time, really nice! :) > } > } > > diff --git a/include/crypto/scatterwalk.h b/include/crypto/scatterwalk.h > index 15ab743f68c8f..83d14376ff2bc 100644 > --- a/include/crypto/scatterwalk.h > +++ b/include/crypto/scatterwalk.h > @@ -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); > } > -- > 2.50.1 >