[PATCH] dm-crypt: Make crypt_iv_operations::post return void

From: Eric Biggers

Date: Sun Mar 29 2026 - 16:50:50 EST


Since all implementations of crypt_iv_operations::post now return 0,
change the return type to void.

Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx>
---

This patch is targeting linux-dm/for-next

drivers/md/dm-crypt.c | 31 +++++++++++++------------------
1 file changed, 13 insertions(+), 18 deletions(-)

diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 60642cee8609..608b617fb817 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -111,12 +111,12 @@ struct crypt_iv_operations {
void (*dtr)(struct crypt_config *cc);
int (*init)(struct crypt_config *cc);
void (*wipe)(struct crypt_config *cc);
int (*generator)(struct crypt_config *cc, u8 *iv,
struct dm_crypt_request *dmreq);
- int (*post)(struct crypt_config *cc, u8 *iv,
- struct dm_crypt_request *dmreq);
+ void (*post)(struct crypt_config *cc, u8 *iv,
+ struct dm_crypt_request *dmreq);
};

struct iv_benbi_private {
int shift;
};
@@ -557,28 +557,27 @@ static int crypt_iv_lmk_gen(struct crypt_config *cc, u8 *iv,
} else
memset(iv, 0, cc->iv_size);
return 0;
}

-static int crypt_iv_lmk_post(struct crypt_config *cc, u8 *iv,
- struct dm_crypt_request *dmreq)
+static void crypt_iv_lmk_post(struct crypt_config *cc, u8 *iv,
+ struct dm_crypt_request *dmreq)
{
struct scatterlist *sg;
u8 *dst;

if (bio_data_dir(dmreq->ctx->bio_in) == WRITE)
- return 0;
+ return;

sg = crypt_get_sg_data(cc, dmreq->sg_out);
dst = kmap_local_page(sg_page(sg));
crypt_iv_lmk_one(cc, iv, dmreq, dst + sg->offset);

/* Tweak the first block of plaintext sector */
crypto_xor(dst + sg->offset, iv, cc->iv_size);

kunmap_local(dst);
- return 0;
}

static void crypt_iv_tcw_dtr(struct crypt_config *cc)
{
struct iv_tcw_private *tcw = &cc->iv_gen_private.tcw;
@@ -682,26 +681,24 @@ static int crypt_iv_tcw_gen(struct crypt_config *cc, u8 *iv,
cc->iv_size - 8);

return 0;
}

-static int crypt_iv_tcw_post(struct crypt_config *cc, u8 *iv,
- struct dm_crypt_request *dmreq)
+static void crypt_iv_tcw_post(struct crypt_config *cc, u8 *iv,
+ struct dm_crypt_request *dmreq)
{
struct scatterlist *sg;
u8 *dst;

if (bio_data_dir(dmreq->ctx->bio_in) != WRITE)
- return 0;
+ return;

/* Apply whitening on ciphertext */
sg = crypt_get_sg_data(cc, dmreq->sg_out);
dst = kmap_local_page(sg_page(sg));
crypt_iv_tcw_whitening(cc, dmreq, dst + sg->offset);
kunmap_local(dst);
-
- return 0;
}

static int crypt_iv_random_gen(struct crypt_config *cc, u8 *iv,
struct dm_crypt_request *dmreq)
{
@@ -992,17 +989,15 @@ static int crypt_iv_elephant_gen(struct crypt_config *cc, u8 *iv,
crypt_iv_elephant(cc, dmreq);

return crypt_iv_eboiv_gen(cc, iv, dmreq);
}

-static int crypt_iv_elephant_post(struct crypt_config *cc, u8 *iv,
- struct dm_crypt_request *dmreq)
+static void crypt_iv_elephant_post(struct crypt_config *cc, u8 *iv,
+ struct dm_crypt_request *dmreq)
{
if (bio_data_dir(dmreq->ctx->bio_in) != WRITE)
crypt_iv_elephant(cc, dmreq);
-
- return 0;
}

static int crypt_iv_elephant_init(struct crypt_config *cc)
{
struct iv_elephant_private *elephant = &cc->iv_gen_private.elephant;
@@ -1344,11 +1339,11 @@ static int crypt_convert_block_aead(struct crypt_config *cc,
ctx->bio_in, s, 0);
}
}

if (!r && cc->iv_gen_ops && cc->iv_gen_ops->post)
- r = cc->iv_gen_ops->post(cc, org_iv, dmreq);
+ cc->iv_gen_ops->post(cc, org_iv, dmreq);

bio_advance_iter(ctx->bio_in, &ctx->iter_in, cc->sector_size);
bio_advance_iter(ctx->bio_out, &ctx->iter_out, cc->sector_size);

return r;
@@ -1421,11 +1416,11 @@ static int crypt_convert_block_skcipher(struct crypt_config *cc,
r = crypto_skcipher_encrypt(req);
else
r = crypto_skcipher_decrypt(req);

if (!r && cc->iv_gen_ops && cc->iv_gen_ops->post)
- r = cc->iv_gen_ops->post(cc, org_iv, dmreq);
+ cc->iv_gen_ops->post(cc, org_iv, dmreq);

bio_advance_iter(ctx->bio_in, &ctx->iter_in, cc->sector_size);
bio_advance_iter(ctx->bio_out, &ctx->iter_out, cc->sector_size);

return r;
@@ -2185,11 +2180,11 @@ static void kcryptd_async_done(void *data, int error)
complete(&ctx->restart);
return;
}

if (!error && cc->iv_gen_ops && cc->iv_gen_ops->post)
- error = cc->iv_gen_ops->post(cc, org_iv_of_dmreq(cc, dmreq), dmreq);
+ cc->iv_gen_ops->post(cc, org_iv_of_dmreq(cc, dmreq), dmreq);

if (error == -EBADMSG) {
sector_t s = le64_to_cpu(*org_sector_of_dmreq(cc, dmreq));

ctx->aead_failed = true;

base-commit: 33eded29319d41fcba5d0257b126a48b449aad47
--
2.53.0