diff options
Diffstat (limited to 'drivers/crypto/nx/nx.c')
-rw-r--r-- | drivers/crypto/nx/nx.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/crypto/nx/nx.c b/drivers/crypto/nx/nx.c index bdf4990f9758..5533fe31c90d 100644 --- a/drivers/crypto/nx/nx.c +++ b/drivers/crypto/nx/nx.c | |||
@@ -211,6 +211,8 @@ struct nx_sg *nx_walk_and_build(struct nx_sg *nx_dst, | |||
211 | * @dst: destination scatterlist | 211 | * @dst: destination scatterlist |
212 | * @src: source scatterlist | 212 | * @src: source scatterlist |
213 | * @nbytes: length of data described in the scatterlists | 213 | * @nbytes: length of data described in the scatterlists |
214 | * @offset: number of bytes to fast-forward past at the beginning of | ||
215 | * scatterlists. | ||
214 | * @iv: destination for the iv data, if the algorithm requires it | 216 | * @iv: destination for the iv data, if the algorithm requires it |
215 | * | 217 | * |
216 | * This is common code shared by all the AES algorithms. It uses the block | 218 | * This is common code shared by all the AES algorithms. It uses the block |
@@ -222,6 +224,7 @@ int nx_build_sg_lists(struct nx_crypto_ctx *nx_ctx, | |||
222 | struct scatterlist *dst, | 224 | struct scatterlist *dst, |
223 | struct scatterlist *src, | 225 | struct scatterlist *src, |
224 | unsigned int nbytes, | 226 | unsigned int nbytes, |
227 | unsigned int offset, | ||
225 | u8 *iv) | 228 | u8 *iv) |
226 | { | 229 | { |
227 | struct nx_sg *nx_insg = nx_ctx->in_sg; | 230 | struct nx_sg *nx_insg = nx_ctx->in_sg; |
@@ -230,8 +233,10 @@ int nx_build_sg_lists(struct nx_crypto_ctx *nx_ctx, | |||
230 | if (iv) | 233 | if (iv) |
231 | memcpy(iv, desc->info, AES_BLOCK_SIZE); | 234 | memcpy(iv, desc->info, AES_BLOCK_SIZE); |
232 | 235 | ||
233 | nx_insg = nx_walk_and_build(nx_insg, nx_ctx->ap->sglen, src, 0, nbytes); | 236 | nx_insg = nx_walk_and_build(nx_insg, nx_ctx->ap->sglen, src, |
234 | nx_outsg = nx_walk_and_build(nx_outsg, nx_ctx->ap->sglen, dst, 0, nbytes); | 237 | offset, nbytes); |
238 | nx_outsg = nx_walk_and_build(nx_outsg, nx_ctx->ap->sglen, dst, | ||
239 | offset, nbytes); | ||
235 | 240 | ||
236 | /* these lengths should be negative, which will indicate to phyp that | 241 | /* these lengths should be negative, which will indicate to phyp that |
237 | * the input and output parameters are scatterlists, not linear | 242 | * the input and output parameters are scatterlists, not linear |