Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 079f2f74 authored by Steffen Klassert's avatar Steffen Klassert Committed by Herbert Xu
Browse files

crypto: scatterwalk - Add scatterwalk_crypto_chain helper



A lot of crypto algorithms implement their own chaining function.
So add a generic one that can be used from all the algorithms that
need scatterlist chaining.

Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent bc97e57e
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -68,6 +68,21 @@ static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg)
	return (++sg)->length ? sg : (void *)sg_page(sg);
}

static inline void scatterwalk_crypto_chain(struct scatterlist *head,
					    struct scatterlist *sg,
					    int chain, int num)
{
	if (chain) {
		head->length += sg->length;
		sg = scatterwalk_sg_next(sg);
	}

	if (sg)
		scatterwalk_sg_chain(head, num, sg);
	else
		sg_mark_end(head);
}

static inline unsigned long scatterwalk_samebuf(struct scatter_walk *walk_in,
						struct scatter_walk *walk_out)
{