linux-crypto.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: linux-crypto@vger.kernel.org
Subject: [PATCH v3 3/8] crypto: skcipher - remove redundant clamping to page size
Date: Sun,  5 Jan 2025 11:34:11 -0800	[thread overview]
Message-ID: <20250105193416.36537-4-ebiggers@kernel.org> (raw)
In-Reply-To: <20250105193416.36537-1-ebiggers@kernel.org>

From: Eric Biggers <ebiggers@google.com>

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>
---
 crypto/skcipher.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/crypto/skcipher.c b/crypto/skcipher.c
index 887cbce8f78d..c627e267b125 100644
--- a/crypto/skcipher.c
+++ b/crypto/skcipher.c
@@ -248,28 +248,24 @@ static int skcipher_walk_next(struct skcipher_walk *walk)
 			return skcipher_walk_done(walk, -EINVAL);
 
 slow_path:
 		return skcipher_next_slow(walk, bsize);
 	}
+	walk->nbytes = n;
 
 	if (unlikely((walk->in.offset | walk->out.offset) & walk->alignmask)) {
 		if (!walk->page) {
 			gfp_t gfp = skcipher_walk_gfp(walk);
 
 			walk->page = (void *)__get_free_page(gfp);
 			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);
 }
 
 static int skcipher_copy_iv(struct skcipher_walk *walk)
 {
-- 
2.47.1


  parent reply	other threads:[~2025-01-05 19:34 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-05 19:34 [PATCH v3 0/8] crypto: skcipher_walk cleanups Eric Biggers
2025-01-05 19:34 ` [PATCH v3 1/8] crypto: skcipher - document skcipher_walk_done() and rename some vars Eric Biggers
2025-01-05 19:34 ` [PATCH v3 2/8] crypto: skcipher - remove unnecessary page alignment of bounce buffer Eric Biggers
2025-01-05 19:34 ` Eric Biggers [this message]
2025-01-05 19:34 ` [PATCH v3 4/8] crypto: skcipher - remove redundant check for SKCIPHER_WALK_SLOW Eric Biggers
2025-01-05 19:34 ` [PATCH v3 5/8] crypto: skcipher - fold skcipher_walk_skcipher() into skcipher_walk_virt() Eric Biggers
2025-01-05 19:34 ` [PATCH v3 6/8] crypto: skcipher - clean up initialization of skcipher_walk::flags Eric Biggers
2025-01-05 19:34 ` [PATCH v3 7/8] crypto: skcipher - optimize initializing skcipher_walk fields Eric Biggers
2025-01-05 19:34 ` [PATCH v3 8/8] crypto: skcipher - call cond_resched() directly Eric Biggers
2025-01-14  3:46 ` [PATCH v3 0/8] crypto: skcipher_walk cleanups Herbert Xu
2025-01-15  2:40   ` Eric Biggers
2025-01-15  4:42     ` Herbert Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250105193416.36537-4-ebiggers@kernel.org \
    --to=ebiggers@kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).