mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
crypto: caam - Remove GFP_DMA and add DMA alignment padding
GFP_DMA does not guarantee that the returned memory is aligned for DMA. It should be removed where it is superfluous. However, kmalloc may start returning DMA-unaligned memory in future so fix this by adding the alignment by hand. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
@@ -9,6 +9,8 @@
|
||||
#ifndef __QI_H__
|
||||
#define __QI_H__
|
||||
|
||||
#include <crypto/algapi.h>
|
||||
#include <linux/compiler_attributes.h>
|
||||
#include <soc/fsl/qman.h>
|
||||
#include "compat.h"
|
||||
#include "desc.h"
|
||||
@@ -58,8 +60,10 @@ enum optype {
|
||||
* @qidev: device pointer for CAAM/QI backend
|
||||
*/
|
||||
struct caam_drv_ctx {
|
||||
u32 prehdr[2];
|
||||
u32 sh_desc[MAX_SDLEN];
|
||||
struct {
|
||||
u32 prehdr[2];
|
||||
u32 sh_desc[MAX_SDLEN];
|
||||
} __aligned(CRYPTO_DMA_ALIGN);
|
||||
dma_addr_t context_a;
|
||||
struct qman_fq *req_fq;
|
||||
struct qman_fq *rsp_fq;
|
||||
@@ -67,7 +71,7 @@ struct caam_drv_ctx {
|
||||
int cpu;
|
||||
enum optype op_type;
|
||||
struct device *qidev;
|
||||
} ____cacheline_aligned;
|
||||
};
|
||||
|
||||
/**
|
||||
* caam_drv_req - The request structure the driver application should fill while
|
||||
@@ -88,7 +92,7 @@ struct caam_drv_req {
|
||||
struct caam_drv_ctx *drv_ctx;
|
||||
caam_qi_cbk cbk;
|
||||
void *app_ctx;
|
||||
} ____cacheline_aligned;
|
||||
} __aligned(CRYPTO_DMA_ALIGN);
|
||||
|
||||
/**
|
||||
* caam_drv_ctx_init - Initialise a CAAM/QI driver context
|
||||
|
||||
Reference in New Issue
Block a user