netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Harald Freudenberger <freude@linux.ibm.com>
To: Eric Biggers <ebiggers@kernel.org>
Cc: linux-crypto@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Holger Dengler <dengler@linux.ibm.com>,
	linux-s390@vger.kernel.org
Subject: Re: [PATCH v2 21/29] crypto: s390/aes-gcm - use the new scatterwalk functions
Date: Wed, 08 Jan 2025 16:06:20 +0100	[thread overview]
Message-ID: <cdcf7da3766aa6f6336f590bd64c12cf@linux.ibm.com> (raw)
In-Reply-To: <20241230001418.74739-22-ebiggers@kernel.org>

On 2024-12-30 01:14, Eric Biggers wrote:
> From: Eric Biggers <ebiggers@google.com>
> 
> Use scatterwalk_next() which consolidates scatterwalk_clamp() and
> scatterwalk_map().  Use scatterwalk_done_src() and
> scatterwalk_done_dst() which consolidate scatterwalk_unmap(),
> scatterwalk_advance(), and scatterwalk_done().
> 
> Besides the new functions being a bit easier to use, this is necessary
> because scatterwalk_done() is planned to be removed.
> 
> Cc: Harald Freudenberger <freude@linux.ibm.com>
> Cc: Holger Dengler <dengler@linux.ibm.com>
> Cc: linux-s390@vger.kernel.org
> Signed-off-by: Eric Biggers <ebiggers@google.com>
> ---
> 
> This patch is part of a long series touching many files, so I have
> limited the Cc list on the full series.  If you want the full series 
> and
> did not receive it, please retrieve it from lore.kernel.org.
> 
>  arch/s390/crypto/aes_s390.c | 33 +++++++++++++--------------------
>  1 file changed, 13 insertions(+), 20 deletions(-)
> 
> diff --git a/arch/s390/crypto/aes_s390.c b/arch/s390/crypto/aes_s390.c
> index 9c46b1b630b1..7fd303df05ab 100644
> --- a/arch/s390/crypto/aes_s390.c
> +++ b/arch/s390/crypto/aes_s390.c
> @@ -785,32 +785,25 @@ static void gcm_walk_start(struct gcm_sg_walk
> *gw, struct scatterlist *sg,
>  	scatterwalk_start(&gw->walk, sg);
>  }
> 
>  static inline unsigned int _gcm_sg_clamp_and_map(struct gcm_sg_walk 
> *gw)
>  {
> -	struct scatterlist *nextsg;
> -
> -	gw->walk_bytes = scatterwalk_clamp(&gw->walk, gw->walk_bytes_remain);
> -	while (!gw->walk_bytes) {
> -		nextsg = sg_next(gw->walk.sg);
> -		if (!nextsg)
> -			return 0;
> -		scatterwalk_start(&gw->walk, nextsg);
> -		gw->walk_bytes = scatterwalk_clamp(&gw->walk,
> -						   gw->walk_bytes_remain);
> -	}
> -	gw->walk_ptr = scatterwalk_map(&gw->walk);
> +	if (gw->walk_bytes_remain == 0)
> +		return 0;
> +	gw->walk_ptr = scatterwalk_next(&gw->walk, gw->walk_bytes_remain,
> +					&gw->walk_bytes);
>  	return gw->walk_bytes;
>  }
> 
>  static inline void _gcm_sg_unmap_and_advance(struct gcm_sg_walk *gw,
> -					     unsigned int nbytes)
> +					     unsigned int nbytes, bool out)
>  {
>  	gw->walk_bytes_remain -= nbytes;
> -	scatterwalk_unmap(gw->walk_ptr);
> -	scatterwalk_advance(&gw->walk, nbytes);
> -	scatterwalk_done(&gw->walk, 0, gw->walk_bytes_remain);
> +	if (out)
> +		scatterwalk_done_dst(&gw->walk, gw->walk_ptr, nbytes);
> +	else
> +		scatterwalk_done_src(&gw->walk, gw->walk_ptr, nbytes);
>  	gw->walk_ptr = NULL;
>  }
> 
>  static int gcm_in_walk_go(struct gcm_sg_walk *gw, unsigned int 
> minbytesneeded)
>  {
> @@ -842,11 +835,11 @@ static int gcm_in_walk_go(struct gcm_sg_walk
> *gw, unsigned int minbytesneeded)
> 
>  	while (1) {
>  		n = min(gw->walk_bytes, AES_BLOCK_SIZE - gw->buf_bytes);
>  		memcpy(gw->buf + gw->buf_bytes, gw->walk_ptr, n);
>  		gw->buf_bytes += n;
> -		_gcm_sg_unmap_and_advance(gw, n);
> +		_gcm_sg_unmap_and_advance(gw, n, false);
>  		if (gw->buf_bytes >= minbytesneeded) {
>  			gw->ptr = gw->buf;
>  			gw->nbytes = gw->buf_bytes;
>  			goto out;
>  		}
> @@ -902,11 +895,11 @@ static int gcm_in_walk_done(struct gcm_sg_walk
> *gw, unsigned int bytesdone)
>  			memmove(gw->buf, gw->buf + bytesdone, n);
>  			gw->buf_bytes = n;
>  		} else
>  			gw->buf_bytes = 0;
>  	} else
> -		_gcm_sg_unmap_and_advance(gw, bytesdone);
> +		_gcm_sg_unmap_and_advance(gw, bytesdone, false);
> 
>  	return bytesdone;
>  }
> 
>  static int gcm_out_walk_done(struct gcm_sg_walk *gw, unsigned int 
> bytesdone)
> @@ -920,14 +913,14 @@ static int gcm_out_walk_done(struct gcm_sg_walk
> *gw, unsigned int bytesdone)
>  		for (i = 0; i < bytesdone; i += n) {
>  			if (!_gcm_sg_clamp_and_map(gw))
>  				return i;
>  			n = min(gw->walk_bytes, bytesdone - i);
>  			memcpy(gw->walk_ptr, gw->buf + i, n);
> -			_gcm_sg_unmap_and_advance(gw, n);
> +			_gcm_sg_unmap_and_advance(gw, n, true);
>  		}
>  	} else
> -		_gcm_sg_unmap_and_advance(gw, bytesdone);
> +		_gcm_sg_unmap_and_advance(gw, bytesdone, true);
> 
>  	return bytesdone;
>  }
> 
>  static int gcm_aes_crypt(struct aead_request *req, unsigned int flags)

Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
Tested-by:  Harald Freudenberger <freude@linux.ibm.com>

  reply	other threads:[~2025-01-08 15:06 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-30  0:13 [PATCH v2 00/29] crypto: scatterlist handling improvements Eric Biggers
2024-12-30  0:13 ` [PATCH v2 01/29] crypto: skcipher - document skcipher_walk_done() and rename some vars Eric Biggers
2024-12-30  0:13 ` [PATCH v2 02/29] crypto: skcipher - remove unnecessary page alignment of bounce buffer Eric Biggers
2024-12-30  0:13 ` [PATCH v2 03/29] crypto: skcipher - remove redundant clamping to page size Eric Biggers
2024-12-30  0:13 ` [PATCH v2 04/29] crypto: skcipher - remove redundant check for SKCIPHER_WALK_SLOW Eric Biggers
2024-12-30  0:13 ` [PATCH v2 05/29] crypto: skcipher - fold skcipher_walk_skcipher() into skcipher_walk_virt() Eric Biggers
2024-12-30  0:13 ` [PATCH v2 06/29] crypto: skcipher - clean up initialization of skcipher_walk::flags Eric Biggers
2024-12-30  0:13 ` [PATCH v2 07/29] crypto: skcipher - optimize initializing skcipher_walk fields Eric Biggers
2024-12-30  0:13 ` [PATCH v2 08/29] crypto: skcipher - call cond_resched() directly Eric Biggers
2024-12-30  0:13 ` [PATCH v2 09/29] crypto: omap - switch from scatter_walk to plain offset Eric Biggers
2024-12-30  0:13 ` [PATCH v2 10/29] crypto: powerpc/p10-aes-gcm - simplify handling of linear associated data Eric Biggers
2025-01-02 11:50   ` Christophe Leroy
2025-01-02 17:24     ` Eric Biggers
2024-12-30  0:14 ` [PATCH v2 11/29] crypto: scatterwalk - move to next sg entry just in time Eric Biggers
2024-12-30  0:14 ` [PATCH v2 12/29] crypto: scatterwalk - add new functions for skipping data Eric Biggers
2024-12-30  0:14 ` [PATCH v2 13/29] crypto: scatterwalk - add new functions for iterating through data Eric Biggers
2024-12-30  0:14 ` [PATCH v2 14/29] crypto: scatterwalk - add new functions for copying data Eric Biggers
2024-12-30  0:14 ` [PATCH v2 15/29] crypto: scatterwalk - add scatterwalk_get_sglist() Eric Biggers
2024-12-30  0:14 ` [PATCH v2 16/29] crypto: skcipher - use scatterwalk_start_at_pos() Eric Biggers
2024-12-30  0:14 ` [PATCH v2 17/29] crypto: aegis - use the new scatterwalk functions Eric Biggers
2024-12-30  0:14 ` [PATCH v2 18/29] crypto: arm/ghash " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 19/29] crypto: arm64 " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 20/29] crypto: nx " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 21/29] crypto: s390/aes-gcm " Eric Biggers
2025-01-08 15:06   ` Harald Freudenberger [this message]
2024-12-30  0:14 ` [PATCH v2 22/29] crypto: s5p-sss " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 23/29] crypto: stm32 " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 24/29] crypto: x86/aes-gcm " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 25/29] crypto: x86/aegis " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 26/29] net/tls: " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 27/29] crypto: skcipher - " Eric Biggers
2024-12-30  0:14 ` [PATCH v2 28/29] crypto: scatterwalk - remove obsolete functions Eric Biggers
2024-12-30  0:14 ` [PATCH v2 29/29] crypto: scatterwalk - don't split at page boundaries when !HIGHMEM Eric Biggers
2024-12-30  1:31 ` [PATCH v2 00/29] crypto: scatterlist handling improvements Eric Biggers

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=cdcf7da3766aa6f6336f590bd64c12cf@linux.ibm.com \
    --to=freude@linux.ibm.com \
    --cc=dengler@linux.ibm.com \
    --cc=ebiggers@kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=netdev@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).