1
0
Fork 0

MLK-19365: crypto: ccm: Cache aligned auth_data

Generic GCM is likely to end up using a hardware accelerator to do
part of the job. Allocating hash, iv and result in a contiguous memory
area increases the risk of dma mapping multiple ranges on the same
cacheline. Also having dma and cpu written data on the same cacheline
will cause coherence issues.

Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
pull/10/head
Franck LENORMAND 2018-09-14 10:59:52 +02:00 committed by Jason Liu
parent d08385adac
commit eede5a6e6e
1 changed files with 12 additions and 1 deletions

View File

@ -46,7 +46,18 @@ struct crypto_rfc4309_req_ctx {
struct crypto_ccm_req_priv_ctx {
u8 odata[16];
u8 idata[16];
u8 auth_tag[16];
/*
* We need to force auth_tag to be on its own cacheline.
*
* We put it on its cacheline with the macro ____cacheline_aligned.
* The next fields must be on another cacheline so we add a dummy field
* which is located on another cacheline to enforce that.
*/
u8 auth_tag[16] ____cacheline_aligned;
u8 dummy_align_auth_tag ____cacheline_aligned;
u32 flags;
struct scatterlist src[3];
struct scatterlist dst[3];