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: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
		
							parent
							
								
									bc97e57eb2
								
							
						
					
					
						commit
						079f2f7485
					
				| @ -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) | ||||
| { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user