RDMA/siw: use crypto_shash_digest() in siw_qp_prepare_tx()
Subsystems (3)
PATCH 1/1 RDMA/siw: use crypto_shash_digest() in siw_qp_prepare_tx()
From: Eric Biggers <[email protected]>
Simplify siw_qp_prepare_tx() by using crypto_shash_digest() instead of an init+update+final sequence. This should also improve performance.
--- drivers/infiniband/sw/siw/siw_qp_tx.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/infiniband/sw/siw/siw_qp_tx.c +4 -8
@@ -242,28 +242,24 @@ static int siw_qp_prepare_tx(struct siw_iwarp_tx *c_tx) c_tx->pkt.c_untagged.ddp_mo =0 ; else c_tx->pkt.c_tagged.ddp_to =cpu_to_be64 (wqe->sqe.raddr); } *(u32 *)crc =0 ;/* * Do complete CRC if enabled and short packet */ -if (c_tx->mpa_crc_hd) { -crypto_shash_init (c_tx->mpa_crc_hd); -if (crypto_shash_update (c_tx->mpa_crc_hd, - (u8 *)&c_tx->pkt, - c_tx->ctrl_len)) -return -EINVAL ; -crypto_shash_final (c_tx->mpa_crc_hd, (u8 *)crc); - } +if (c_tx->mpa_crc_hd && +crypto_shash_digest (c_tx->mpa_crc_hd, (u8 *)&c_tx->pkt, + c_tx->ctrl_len, (u8 *)crc) !=0 ) +return -EINVAL ; c_tx->ctrl_len +=MPA_CRC_SIZE ;return PKT_COMPLETE ; } c_tx->ctrl_len +=MPA_CRC_SIZE ; c_tx->sge_idx =0 ; c_tx->sge_off =0 ; c_tx->pbl_idx =0 ;/*
base-commit: 2af9b20dbb39f6ebf9b9b6c090271594627d818e
Signature · 1 line
2.42.0
Quoted 61 lines
-----Original Message-----
From: Eric Biggers <[email protected]>
Sent: Sunday, October 29, 2023 5:59 AM
To: Bernard Metzler <[email protected]>; Jason Gunthorpe <[email protected]>; Leon Romanovsky <[email protected]>; [email protected]
Cc: [email protected]
Subject: [EXTERNAL] [PATCH] RDMA/siw: usecrypto_shash_digest()insiw_qp_prepare_tx()From: Eric Biggers <[email protected]>
Simplify
siw_qp_prepare_tx()by usingcrypto_shash_digest()instead of an init+update+final sequence. This should also improve performance.Signed-off-by Eric Biggers <[email protected]>--- drivers/infiniband/sw/siw/siw_qp_tx.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)drivers/infiniband/sw/siw/siw_qp_tx.c +4
-8@@ -242,28 +242,24 @@ static int siw_qp_prepare_tx(struct siw_iwarp_tx *c_tx) c_tx->pkt.c_untagged.ddp_mo =0 ; else c_tx->pkt.c_tagged.ddp_to =cpu_to_be64 (wqe->sqe.raddr); } *(u32 *)crc =0 ;/* * Do complete CRC if enabled and short packet */ -if (c_tx->mpa_crc_hd) { -crypto_shash_init (c_tx->mpa_crc_hd); -if (crypto_shash_update (c_tx->mpa_crc_hd, - (u8 *)&c_tx->pkt, - c_tx->ctrl_len)) -return -EINVAL ; -crypto_shash_final (c_tx->mpa_crc_hd, (u8 *)crc); - } +if (c_tx->mpa_crc_hd && +crypto_shash_digest (c_tx->mpa_crc_hd, (u8 *)&c_tx->pkt, + c_tx->ctrl_len, (u8 *)crc) !=0 ) +return -EINVAL ; c_tx->ctrl_len +=MPA_CRC_SIZE ;return PKT_COMPLETE ; } c_tx->ctrl_len +=MPA_CRC_SIZE ; c_tx->sge_idx =0 ; c_tx->sge_off =0 ; c_tx->pbl_idx =0 ;/*
Quoted 3 lines
base-commit:
2af9b20dbb39f6ebf9b9b6c090271594627d818e--
2.42.0
Thank you Eric, looks good to me!
Leon Romanovsky
AppliedQuoted 4 lines · Eric Biggers
Simplify
siw_qp_prepare_tx()by usingcrypto_shash_digest()instead of an init+update+final sequence. This should also improve performance.
Applied, thanks!
[1/1] RDMA/siw: use crypto_shash_digest() in siw_qp_prepare_tx()
https://git.kernel.org/rdma/rdma/c/9aac6c05a56289
Best regards,
Signature · 1 line
Leon Romanovsky <[email protected]>