MLK-20639: drivers: crypto: caam: pkc: RSA test fails as struct uses wrong type
authorFranck LENORMAND <franck.lenormand@nxp.com>
Mon, 21 Jan 2019 12:51:43 +0000 (13:51 +0100)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
When creating the job descriptor, it uses the size of the structure which
is composed of dma_addr_t. On IMX8, this structrue is 64bit like the DMA
however the CAAM only receives 32 bit addresses. It result in a job
descriptor and more precisely the start index to point to invalid
location when it should point to the "command operation".

This patch changes the dma_addr_t to caam_dma_addr_t which is the correct
one for the rsa_priv_f2_pdb and rsa_priv_f3_pdb types as rsa_pub_pdb and
rsa_priv_f1_pdb already had this change.

Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
Reviewed-by: Horia Geanta <horia.geanta@nxp.com>
drivers/crypto/caam/pdb.h

index 1293408..68f27e0 100644 (file)
@@ -548,13 +548,13 @@ struct rsa_priv_f1_pdb {
  */
 struct rsa_priv_f2_pdb {
        u32             sgf;
-       dma_addr_t      g_dma;
-       dma_addr_t      f_dma;
-       dma_addr_t      d_dma;
-       dma_addr_t      p_dma;
-       dma_addr_t      q_dma;
-       dma_addr_t      tmp1_dma;
-       dma_addr_t      tmp2_dma;
+       caam_dma_addr_t g_dma;
+       caam_dma_addr_t f_dma;
+       caam_dma_addr_t d_dma;
+       caam_dma_addr_t p_dma;
+       caam_dma_addr_t q_dma;
+       caam_dma_addr_t tmp1_dma;
+       caam_dma_addr_t tmp2_dma;
        u32             p_q_len;
 } __packed;
 
@@ -578,15 +578,15 @@ struct rsa_priv_f2_pdb {
  */
 struct rsa_priv_f3_pdb {
        u32             sgf;
-       dma_addr_t      g_dma;
-       dma_addr_t      f_dma;
-       dma_addr_t      c_dma;
-       dma_addr_t      p_dma;
-       dma_addr_t      q_dma;
-       dma_addr_t      dp_dma;
-       dma_addr_t      dq_dma;
-       dma_addr_t      tmp1_dma;
-       dma_addr_t      tmp2_dma;
+       caam_dma_addr_t g_dma;
+       caam_dma_addr_t f_dma;
+       caam_dma_addr_t c_dma;
+       caam_dma_addr_t p_dma;
+       caam_dma_addr_t q_dma;
+       caam_dma_addr_t dp_dma;
+       caam_dma_addr_t dq_dma;
+       caam_dma_addr_t tmp1_dma;
+       caam_dma_addr_t tmp2_dma;
        u32             p_q_len;
 } __packed;