]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
crypto: skcipher - remove redundant clamping to page size
authorEric Biggers <ebiggers@google.com>
Sun, 5 Jan 2025 19:34:11 +0000 (11:34 -0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 14 Jan 2025 03:38:32 +0000 (11:38 +0800)
In the case where skcipher_walk_next() allocates a bounce page, that
page by definition has size PAGE_SIZE.  The number of bytes to copy 'n'
is guaranteed to fit in it, since earlier in the function it was clamped
to be at most a page.  Therefore remove the unnecessary logic that tried
to clamp 'n' again to fit in the bounce page.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/skcipher.c

index 887cbce8f78dec0f30393a47f39ef5f1e0ffd023..c627e267b125321f549d63b599152db60e4ebb7d 100644 (file)
@@ -250,6 +250,7 @@ static int skcipher_walk_next(struct skcipher_walk *walk)
 slow_path:
                return skcipher_next_slow(walk, bsize);
        }
+       walk->nbytes = n;
 
        if (unlikely((walk->in.offset | walk->out.offset) & walk->alignmask)) {
                if (!walk->page) {
@@ -259,15 +260,10 @@ slow_path:
                        if (!walk->page)
                                goto slow_path;
                }
-
-               walk->nbytes = min_t(unsigned, n,
-                                    PAGE_SIZE - offset_in_page(walk->page));
                walk->flags |= SKCIPHER_WALK_COPY;
                return skcipher_next_copy(walk);
        }
 
-       walk->nbytes = n;
-
        return skcipher_next_fast(walk);
 }