Skip to content

Commit f3b140a

Browse files
ayushsawldavem330
authored andcommitted
Crypto/chcr: Fixes compilations warnings
This patch fixes the compilation warnings displayed by sparse tool for chcr driver. V1->V2 Avoid type casting by using get_unaligned_be32() and put_unaligned_be16/32() functions. The key which comes from stack is an u8 byte stream so we store it in an unsigned char array(ablkctx->key). The function get_aes_decrypt_key() is a used to calculate the reverse round key for decryption, for this operation the key has to be divided into 4 bytes, so to extract 4 bytes from an u8 byte stream and store it in an u32 variable, get_aligned_be32() is used. Similarly for copying back the key from u32 variable to the original u8 key stream, put_aligned_be32() is used. Signed-off-by: Ayush Sawal <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 76d7728 commit f3b140a

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

drivers/crypto/chelsio/chcr_algo.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ static void get_aes_decrypt_key(unsigned char *dec_key,
256256
return;
257257
}
258258
for (i = 0; i < nk; i++)
259-
w_ring[i] = be32_to_cpu(*(u32 *)&key[4 * i]);
259+
w_ring[i] = get_unaligned_be32(&key[i * 4]);
260260

261261
i = 0;
262262
temp = w_ring[nk - 1];
@@ -275,7 +275,7 @@ static void get_aes_decrypt_key(unsigned char *dec_key,
275275
}
276276
i--;
277277
for (k = 0, j = i % nk; k < nk; k++) {
278-
*((u32 *)dec_key + k) = htonl(w_ring[j]);
278+
put_unaligned_be32(w_ring[j], &dec_key[k * 4]);
279279
j--;
280280
if (j < 0)
281281
j += nk;
@@ -2926,8 +2926,7 @@ static int ccm_format_packet(struct aead_request *req,
29262926
memcpy(ivptr, req->iv, 16);
29272927
}
29282928
if (assoclen)
2929-
*((unsigned short *)(reqctx->scratch_pad + 16)) =
2930-
htons(assoclen);
2929+
put_unaligned_be16(assoclen, &reqctx->scratch_pad[16]);
29312930

29322931
rc = generate_b0(req, ivptr, op_type);
29332932
/* zero the ctr value */
@@ -3201,8 +3200,7 @@ static struct sk_buff *create_gcm_wr(struct aead_request *req,
32013200
} else {
32023201
memcpy(ivptr, req->iv, GCM_AES_IV_SIZE);
32033202
}
3204-
*((unsigned int *)(ivptr + 12)) = htonl(0x01);
3205-
3203+
put_unaligned_be32(0x01, &ivptr[12]);
32063204
ulptx = (struct ulptx_sgl *)(ivptr + 16);
32073205

32083206
chcr_add_aead_dst_ent(req, phys_cpl, qid);

drivers/crypto/chelsio/chcr_ipsec.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ inline void *copy_esn_pktxt(struct sk_buff *skb,
403403
xo = xfrm_offload(skb);
404404

405405
aadiv->spi = (esphdr->spi);
406-
seqlo = htonl(esphdr->seq_no);
406+
seqlo = ntohl(esphdr->seq_no);
407407
seqno = cpu_to_be64(seqlo + ((u64)xo->seq.hi << 32));
408408
memcpy(aadiv->seq_no, &seqno, 8);
409409
iv = skb_transport_header(skb) + sizeof(struct ip_esp_hdr);

0 commit comments

Comments
 (0)