2020-05-14 07:55:03

by Ayush Sawal

[permalink] [raw]
Subject: [PATCH net-next 1/2] Crypto/chcr: Fixes compilations warnings

This patch fixes the compilation warnings displayed by sparse tool for
chcr driver.

Signed-off-by: Ayush Sawal <[email protected]>
---
drivers/crypto/chelsio/chcr_algo.c | 8 ++++----
drivers/crypto/chelsio/chcr_ipsec.c | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/crypto/chelsio/chcr_algo.c b/drivers/crypto/chelsio/chcr_algo.c
index b8c1c4dd3ef0..1aed0e8d6558 100644
--- a/drivers/crypto/chelsio/chcr_algo.c
+++ b/drivers/crypto/chelsio/chcr_algo.c
@@ -256,7 +256,7 @@ static void get_aes_decrypt_key(unsigned char *dec_key,
return;
}
for (i = 0; i < nk; i++)
- w_ring[i] = be32_to_cpu(*(u32 *)&key[4 * i]);
+ w_ring[i] = be32_to_cpu(*(__be32 *)&key[4 * i]);

i = 0;
temp = w_ring[nk - 1];
@@ -275,7 +275,7 @@ static void get_aes_decrypt_key(unsigned char *dec_key,
}
i--;
for (k = 0, j = i % nk; k < nk; k++) {
- *((u32 *)dec_key + k) = htonl(w_ring[j]);
+ *((__be32 *)dec_key + k) = htonl(w_ring[j]);
j--;
if (j < 0)
j += nk;
@@ -2926,7 +2926,7 @@ static int ccm_format_packet(struct aead_request *req,
memcpy(ivptr, req->iv, 16);
}
if (assoclen)
- *((unsigned short *)(reqctx->scratch_pad + 16)) =
+ *((__be16 *)(reqctx->scratch_pad + 16)) =
htons(assoclen);

rc = generate_b0(req, ivptr, op_type);
@@ -3201,7 +3201,7 @@ static struct sk_buff *create_gcm_wr(struct aead_request *req,
} else {
memcpy(ivptr, req->iv, GCM_AES_IV_SIZE);
}
- *((unsigned int *)(ivptr + 12)) = htonl(0x01);
+ *((__be32 *)(ivptr + 12)) = htonl(0x01);

ulptx = (struct ulptx_sgl *)(ivptr + 16);

diff --git a/drivers/crypto/chelsio/chcr_ipsec.c b/drivers/crypto/chelsio/chcr_ipsec.c
index d25689837b26..3a10f51ad6fd 100644
--- a/drivers/crypto/chelsio/chcr_ipsec.c
+++ b/drivers/crypto/chelsio/chcr_ipsec.c
@@ -403,7 +403,7 @@ inline void *copy_esn_pktxt(struct sk_buff *skb,
xo = xfrm_offload(skb);

aadiv->spi = (esphdr->spi);
- seqlo = htonl(esphdr->seq_no);
+ seqlo = ntohl(esphdr->seq_no);
seqno = cpu_to_be64(seqlo + ((u64)xo->seq.hi << 32));
memcpy(aadiv->seq_no, &seqno, 8);
iv = skb_transport_header(skb) + sizeof(struct ip_esp_hdr);
--
2.26.0.rc1.11.g30e9940


2020-05-14 20:09:31

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net-next 1/2] Crypto/chcr: Fixes compilations warnings

From: Ayush Sawal <[email protected]>
Date: Thu, 14 May 2020 13:23:29 +0530

> @@ -256,7 +256,7 @@ static void get_aes_decrypt_key(unsigned char *dec_key,
> return;
> }
> for (i = 0; i < nk; i++)
> - w_ring[i] = be32_to_cpu(*(u32 *)&key[4 * i]);
> + w_ring[i] = be32_to_cpu(*(__be32 *)&key[4 * i]);
>
> i = 0;

If the key stored is a big endian value, please fix the type
of ablkctx->key to be __be32 instead of making the driver so
ugly with unnecessary casts all over the place.

This is a really lazy and sloppy way to fix these warnings, and
I'm not applying stuff like this, sorry.