|
@@ -545,6 +545,15 @@ static void crypto4xx_cipher_done(struct crypto4xx_device *dev,
|
|
|
addr = dma_map_page(dev->core_dev->device, sg_page(dst),
|
|
|
dst->offset, dst->length, DMA_FROM_DEVICE);
|
|
|
}
|
|
|
+
|
|
|
+ if (pd_uinfo->sa_va->sa_command_0.bf.save_iv == SA_SAVE_IV) {
|
|
|
+ struct crypto_skcipher *skcipher = crypto_skcipher_reqtfm(req);
|
|
|
+
|
|
|
+ crypto4xx_memcpy_from_le32((u32 *)req->iv,
|
|
|
+ pd_uinfo->sr_va->save_iv,
|
|
|
+ crypto_skcipher_ivsize(skcipher));
|
|
|
+ }
|
|
|
+
|
|
|
crypto4xx_ret_sg_desc(dev, pd_uinfo);
|
|
|
|
|
|
if (pd_uinfo->state & PD_ENTRY_BUSY)
|