|
@@ -325,7 +325,8 @@ static int ecb_aes_crypt(struct blkcipher_desc *desc, long func, void *param,
|
|
|
u8 *in = walk->src.virt.addr;
|
|
|
|
|
|
ret = crypt_s390_km(func, param, out, in, n);
|
|
|
- BUG_ON((ret < 0) || (ret != n));
|
|
|
+ if (ret < 0 || ret != n)
|
|
|
+ return -EIO;
|
|
|
|
|
|
nbytes &= AES_BLOCK_SIZE - 1;
|
|
|
ret = blkcipher_walk_done(desc, walk, nbytes);
|
|
@@ -457,7 +458,8 @@ static int cbc_aes_crypt(struct blkcipher_desc *desc, long func, void *param,
|
|
|
u8 *in = walk->src.virt.addr;
|
|
|
|
|
|
ret = crypt_s390_kmc(func, param, out, in, n);
|
|
|
- BUG_ON((ret < 0) || (ret != n));
|
|
|
+ if (ret < 0 || ret != n)
|
|
|
+ return -EIO;
|
|
|
|
|
|
nbytes &= AES_BLOCK_SIZE - 1;
|
|
|
ret = blkcipher_walk_done(desc, walk, nbytes);
|
|
@@ -625,7 +627,8 @@ static int xts_aes_crypt(struct blkcipher_desc *desc, long func,
|
|
|
memcpy(xts_ctx->pcc.tweak, walk->iv, sizeof(xts_ctx->pcc.tweak));
|
|
|
param = xts_ctx->pcc.key + offset;
|
|
|
ret = crypt_s390_pcc(func, param);
|
|
|
- BUG_ON(ret < 0);
|
|
|
+ if (ret < 0)
|
|
|
+ return -EIO;
|
|
|
|
|
|
memcpy(xts_ctx->xts_param, xts_ctx->pcc.xts, 16);
|
|
|
param = xts_ctx->key + offset;
|
|
@@ -636,7 +639,8 @@ static int xts_aes_crypt(struct blkcipher_desc *desc, long func,
|
|
|
in = walk->src.virt.addr;
|
|
|
|
|
|
ret = crypt_s390_km(func, param, out, in, n);
|
|
|
- BUG_ON(ret < 0 || ret != n);
|
|
|
+ if (ret < 0 || ret != n)
|
|
|
+ return -EIO;
|
|
|
|
|
|
nbytes &= AES_BLOCK_SIZE - 1;
|
|
|
ret = blkcipher_walk_done(desc, walk, nbytes);
|
|
@@ -769,7 +773,8 @@ static int ctr_aes_crypt(struct blkcipher_desc *desc, long func,
|
|
|
crypto_inc(ctrblk + i, AES_BLOCK_SIZE);
|
|
|
}
|
|
|
ret = crypt_s390_kmctr(func, sctx->key, out, in, n, ctrblk);
|
|
|
- BUG_ON(ret < 0 || ret != n);
|
|
|
+ if (ret < 0 || ret != n)
|
|
|
+ return -EIO;
|
|
|
if (n > AES_BLOCK_SIZE)
|
|
|
memcpy(ctrblk, ctrblk + n - AES_BLOCK_SIZE,
|
|
|
AES_BLOCK_SIZE);
|
|
@@ -788,7 +793,8 @@ static int ctr_aes_crypt(struct blkcipher_desc *desc, long func,
|
|
|
in = walk->src.virt.addr;
|
|
|
ret = crypt_s390_kmctr(func, sctx->key, buf, in,
|
|
|
AES_BLOCK_SIZE, ctrblk);
|
|
|
- BUG_ON(ret < 0 || ret != AES_BLOCK_SIZE);
|
|
|
+ if (ret < 0 || ret != AES_BLOCK_SIZE)
|
|
|
+ return -EIO;
|
|
|
memcpy(out, buf, nbytes);
|
|
|
crypto_inc(ctrblk, AES_BLOCK_SIZE);
|
|
|
ret = blkcipher_walk_done(desc, walk, 0);
|