static int aead_null_set_sh_desc(struct crypto_aead *aead)
 {
-       struct aead_tfm *tfm = &aead->base.crt_aead;
+       unsigned int ivsize = crypto_aead_ivsize(aead);
        struct caam_ctx *ctx = crypto_aead_ctx(aead);
        struct device *jrdev = ctx->jrdev;
        bool keys_fit_inline = false;
 
        /* assoclen + cryptlen = seqinlen - ivsize - authsize */
        append_math_sub_imm_u32(desc, REG3, SEQINLEN, IMM,
-                               ctx->authsize + tfm->ivsize);
+                               ctx->authsize + ivsize);
        /* assoclen = (assoclen + cryptlen) - cryptlen */
        append_math_sub(desc, REG2, SEQOUTLEN, REG0, CAAM_CMD_SZ);
        append_math_sub(desc, VARSEQINLEN, REG3, REG2, CAAM_CMD_SZ);
 
 static int aead_set_sh_desc(struct crypto_aead *aead)
 {
-       struct aead_tfm *tfm = &aead->base.crt_aead;
+       unsigned int ivsize = crypto_aead_ivsize(aead);
        struct caam_ctx *ctx = crypto_aead_ctx(aead);
        struct crypto_tfm *ctfm = crypto_aead_tfm(aead);
        const char *alg_name = crypto_tfm_alg_name(ctfm);
        append_math_sub_imm_u32(desc, REG3, SEQOUTLEN, IMM, ctx->authsize);
 
        /* assoclen + cryptlen = seqinlen - ivsize */
-       append_math_sub_imm_u32(desc, REG2, SEQINLEN, IMM, tfm->ivsize);
+       append_math_sub_imm_u32(desc, REG2, SEQINLEN, IMM, ivsize);
 
        /* assoclen = (assoclen + cryptlen) - cryptlen */
        append_math_sub(desc, VARSEQINLEN, REG2, REG3, CAAM_CMD_SZ);
        /* read assoc before reading payload */
        append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_MSG |
                             KEY_VLF);
-       aead_append_ld_iv(desc, tfm->ivsize, ctx1_iv_off);
+       aead_append_ld_iv(desc, ivsize, ctx1_iv_off);
 
        /* Load Counter into CONTEXT1 reg */
        if (is_rfc3686)
 
        /* assoclen + cryptlen = seqinlen - ivsize - authsize */
        append_math_sub_imm_u32(desc, REG3, SEQINLEN, IMM,
-                               ctx->authsize + tfm->ivsize);
+                               ctx->authsize + ivsize);
        /* assoclen = (assoclen + cryptlen) - cryptlen */
        append_math_sub(desc, REG2, SEQOUTLEN, REG0, CAAM_CMD_SZ);
        append_math_sub(desc, VARSEQINLEN, REG3, REG2, CAAM_CMD_SZ);
        append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_MSG |
                             KEY_VLF);
 
-       aead_append_ld_iv(desc, tfm->ivsize, ctx1_iv_off);
+       aead_append_ld_iv(desc, ivsize, ctx1_iv_off);
 
        /* Load Counter into CONTEXT1 reg */
        if (is_rfc3686)
        /* Generate IV */
        geniv = NFIFOENTRY_STYPE_PAD | NFIFOENTRY_DEST_DECO |
                NFIFOENTRY_DTYPE_MSG | NFIFOENTRY_LC1 |
-               NFIFOENTRY_PTYPE_RND | (tfm->ivsize << NFIFOENTRY_DLEN_SHIFT);
+               NFIFOENTRY_PTYPE_RND | (ivsize << NFIFOENTRY_DLEN_SHIFT);
        append_load_imm_u32(desc, geniv, LDST_CLASS_IND_CCB |
                            LDST_SRCDST_WORD_INFO_FIFO | LDST_IMM);
        append_cmd(desc, CMD_LOAD | DISABLE_AUTO_INFO_FIFO);
        append_move(desc, MOVE_WAITCOMP |
                    MOVE_SRC_INFIFO | MOVE_DEST_CLASS1CTX |
                    (ctx1_iv_off << MOVE_OFFSET_SHIFT) |
-                   (tfm->ivsize << MOVE_LEN_SHIFT));
+                   (ivsize << MOVE_LEN_SHIFT));
        append_cmd(desc, CMD_LOAD | ENABLE_AUTO_INFO_FIFO);
 
        /* Copy IV to class 1 context */
        append_move(desc, MOVE_SRC_CLASS1CTX | MOVE_DEST_OUTFIFO |
                    (ctx1_iv_off << MOVE_OFFSET_SHIFT) |
-                   (tfm->ivsize << MOVE_LEN_SHIFT));
+                   (ivsize << MOVE_LEN_SHIFT));
 
        /* Return to encryption */
        append_operation(desc, ctx->class2_alg_type |
 
        /* Copy iv from outfifo to class 2 fifo */
        moveiv = NFIFOENTRY_STYPE_OFIFO | NFIFOENTRY_DEST_CLASS2 |
-                NFIFOENTRY_DTYPE_MSG | (tfm->ivsize << NFIFOENTRY_DLEN_SHIFT);
+                NFIFOENTRY_DTYPE_MSG | (ivsize << NFIFOENTRY_DLEN_SHIFT);
        append_load_imm_u32(desc, moveiv, LDST_CLASS_IND_CCB |
                            LDST_SRCDST_WORD_INFO_FIFO | LDST_IMM);
-       append_load_imm_u32(desc, tfm->ivsize, LDST_CLASS_2_CCB |
+       append_load_imm_u32(desc, ivsize, LDST_CLASS_2_CCB |
                            LDST_SRCDST_WORD_DATASZ_REG | LDST_IMM);
 
        /* Load Counter into CONTEXT1 reg */
        append_math_add(desc, VARSEQOUTLEN, SEQINLEN, REG0, CAAM_CMD_SZ);
 
        /* Not need to reload iv */
-       append_seq_fifo_load(desc, tfm->ivsize,
+       append_seq_fifo_load(desc, ivsize,
                             FIFOLD_CLASS_SKIP);
 
        /* Will read cryptlen */
 
 static int gcm_set_sh_desc(struct crypto_aead *aead)
 {
-       struct aead_tfm *tfm = &aead->base.crt_aead;
+       unsigned int ivsize = crypto_aead_ivsize(aead);
        struct caam_ctx *ctx = crypto_aead_ctx(aead);
        struct device *jrdev = ctx->jrdev;
        bool keys_fit_inline = false;
        append_math_sub_imm_u32(desc, REG3, SEQOUTLEN, IMM, ctx->authsize);
 
        /* assoclen + cryptlen = seqinlen - ivsize */
-       append_math_sub_imm_u32(desc, REG2, SEQINLEN, IMM, tfm->ivsize);
+       append_math_sub_imm_u32(desc, REG2, SEQINLEN, IMM, ivsize);
 
        /* assoclen = (assoclen + cryptlen) - cryptlen */
        append_math_sub(desc, REG1, REG2, REG3, CAAM_CMD_SZ);
        zero_payload_jump_cmd = append_jump(desc, JUMP_TEST_ALL |
                                            JUMP_COND_MATH_Z);
        /* read IV */
-       append_seq_fifo_load(desc, tfm->ivsize, FIFOLD_CLASS_CLASS1 |
+       append_seq_fifo_load(desc, ivsize, FIFOLD_CLASS_CLASS1 |
                             FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1);
 
        /* if assoclen is ZERO, skip reading the assoc data */
        zero_assoc_jump_cmd2 = append_jump(desc, JUMP_TEST_ALL |
                                           JUMP_COND_MATH_Z);
        /* read IV */
-       append_seq_fifo_load(desc, tfm->ivsize, FIFOLD_CLASS_CLASS1 |
+       append_seq_fifo_load(desc, ivsize, FIFOLD_CLASS_CLASS1 |
                             FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1);
 
        /* read assoc data */
 
        /* read IV - is the only input data */
        set_jump_tgt_here(desc, zero_assoc_jump_cmd2);
-       append_seq_fifo_load(desc, tfm->ivsize, FIFOLD_CLASS_CLASS1 |
+       append_seq_fifo_load(desc, ivsize, FIFOLD_CLASS_CLASS1 |
                             FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 |
                             FIFOLD_TYPE_LAST1);
 
 
        /* assoclen + cryptlen = seqinlen - ivsize - icvsize */
        append_math_sub_imm_u32(desc, REG3, SEQINLEN, IMM,
-                               ctx->authsize + tfm->ivsize);
+                               ctx->authsize + ivsize);
 
        /* assoclen = (assoclen + cryptlen) - cryptlen */
        append_math_sub(desc, REG2, SEQOUTLEN, REG0, CAAM_CMD_SZ);
        append_math_sub(desc, REG1, REG3, REG2, CAAM_CMD_SZ);
 
        /* read IV */
-       append_seq_fifo_load(desc, tfm->ivsize, FIFOLD_CLASS_CLASS1 |
+       append_seq_fifo_load(desc, ivsize, FIFOLD_CLASS_CLASS1 |
                             FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1);
 
        /* jump to zero-payload command if cryptlen is zero */
 
 static int rfc4106_set_sh_desc(struct crypto_aead *aead)
 {
-       struct aead_tfm *tfm = &aead->base.crt_aead;
+       unsigned int ivsize = crypto_aead_ivsize(aead);
        struct caam_ctx *ctx = crypto_aead_ctx(aead);
        struct device *jrdev = ctx->jrdev;
        bool keys_fit_inline = false;
        append_math_add(desc, VARSEQOUTLEN, ZERO, REG3, CAAM_CMD_SZ);
 
        /* assoclen + cryptlen = seqinlen - ivsize */
-       append_math_sub_imm_u32(desc, REG2, SEQINLEN, IMM, tfm->ivsize);
+       append_math_sub_imm_u32(desc, REG2, SEQINLEN, IMM, ivsize);
 
        /* assoclen = (assoclen + cryptlen) - cryptlen */
        append_math_sub(desc, VARSEQINLEN, REG2, REG3, CAAM_CMD_SZ);
        append_fifo_load_as_imm(desc, (void *)(ctx->key + ctx->enckeylen),
                                4, FIFOLD_CLASS_CLASS1 | FIFOLD_TYPE_IV);
        /* Read AES-GCM-ESP IV */
-       append_seq_fifo_load(desc, tfm->ivsize, FIFOLD_CLASS_CLASS1 |
+       append_seq_fifo_load(desc, ivsize, FIFOLD_CLASS_CLASS1 |
                             FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1);
 
        /* Read assoc data */
 
        /* assoclen + cryptlen = seqinlen - ivsize - icvsize */
        append_math_sub_imm_u32(desc, REG3, SEQINLEN, IMM,
-                               ctx->authsize + tfm->ivsize);
+                               ctx->authsize + ivsize);
 
        /* assoclen = (assoclen + cryptlen) - cryptlen */
        append_math_sub(desc, REG2, SEQOUTLEN, REG0, CAAM_CMD_SZ);
        append_fifo_load_as_imm(desc, (void *)(ctx->key + ctx->enckeylen),
                                4, FIFOLD_CLASS_CLASS1 | FIFOLD_TYPE_IV);
        /* Read AES-GCM-ESP IV */
-       append_seq_fifo_load(desc, tfm->ivsize, FIFOLD_CLASS_CLASS1 |
+       append_seq_fifo_load(desc, ivsize, FIFOLD_CLASS_CLASS1 |
                             FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1);
 
        /* Read assoc data */
        /* Generate IV */
        geniv = NFIFOENTRY_STYPE_PAD | NFIFOENTRY_DEST_DECO |
                NFIFOENTRY_DTYPE_MSG | NFIFOENTRY_LC1 |
-               NFIFOENTRY_PTYPE_RND | (tfm->ivsize << NFIFOENTRY_DLEN_SHIFT);
+               NFIFOENTRY_PTYPE_RND | (ivsize << NFIFOENTRY_DLEN_SHIFT);
        append_load_imm_u32(desc, geniv, LDST_CLASS_IND_CCB |
                            LDST_SRCDST_WORD_INFO_FIFO | LDST_IMM);
        append_cmd(desc, CMD_LOAD | DISABLE_AUTO_INFO_FIFO);
        move_cmd = append_move(desc, MOVE_SRC_INFIFO | MOVE_DEST_DESCBUF |
-                              (tfm->ivsize << MOVE_LEN_SHIFT));
+                              (ivsize << MOVE_LEN_SHIFT));
        append_cmd(desc, CMD_LOAD | ENABLE_AUTO_INFO_FIFO);
 
        /* Copy generated IV to OFIFO */
        write_iv_cmd = append_move(desc, MOVE_SRC_DESCBUF | MOVE_DEST_OUTFIFO |
-                                  (tfm->ivsize << MOVE_LEN_SHIFT));
+                                  (ivsize << MOVE_LEN_SHIFT));
 
        /* Class 1 operation */
        append_operation(desc, ctx->class1_alg_type |
        /* End of blank commands */
 
        /* No need to reload iv */
-       append_seq_fifo_load(desc, tfm->ivsize, FIFOLD_CLASS_SKIP);
+       append_seq_fifo_load(desc, ivsize, FIFOLD_CLASS_SKIP);
 
        /* Read assoc data */
        append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS1 | FIFOLDST_VLF |
 
 static int rfc4543_set_sh_desc(struct crypto_aead *aead)
 {
-       struct aead_tfm *tfm = &aead->base.crt_aead;
+       unsigned int ivsize = crypto_aead_ivsize(aead);
        struct caam_ctx *ctx = crypto_aead_ctx(aead);
        struct device *jrdev = ctx->jrdev;
        bool keys_fit_inline = false;
 
        /* Load AES-GMAC ESP IV into Math1 register */
        append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_WORD_DECO_MATH1 |
-                  LDST_CLASS_DECO | tfm->ivsize);
+                  LDST_CLASS_DECO | ivsize);
 
        /* Wait the DMA transaction to finish */
        append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM |
 
        /* Overwrite blank immediate AES-GMAC ESP IV data */
        write_iv_cmd = append_move(desc, MOVE_SRC_MATH1 | MOVE_DEST_DESCBUF |
-                                  (tfm->ivsize << MOVE_LEN_SHIFT));
+                                  (ivsize << MOVE_LEN_SHIFT));
 
        /* Overwrite blank immediate AAD data */
        write_aad_cmd = append_move(desc, MOVE_SRC_MATH1 | MOVE_DEST_DESCBUF |
-                                   (tfm->ivsize << MOVE_LEN_SHIFT));
+                                   (ivsize << MOVE_LEN_SHIFT));
 
        /* cryptlen = seqoutlen - authsize */
        append_math_sub_imm_u32(desc, REG3, SEQOUTLEN, IMM, ctx->authsize);
 
        /* Read Salt and AES-GMAC ESP IV */
        append_cmd(desc, CMD_FIFO_LOAD | FIFOLD_CLASS_CLASS1 | IMMEDIATE |
-                  FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | (4 + tfm->ivsize));
+                  FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | (4 + ivsize));
        /* Append Salt */
        append_data(desc, (void *)(ctx->key + ctx->enckeylen), 4);
        set_move_tgt_here(desc, write_iv_cmd);
 
        /* Authenticate AES-GMAC ESP IV  */
        append_cmd(desc, CMD_FIFO_LOAD | FIFOLD_CLASS_CLASS1 | IMMEDIATE |
-                  FIFOLD_TYPE_AAD | tfm->ivsize);
+                  FIFOLD_TYPE_AAD | ivsize);
        set_move_tgt_here(desc, write_aad_cmd);
        /* Blank commands. Will be overwritten by AES-GMAC ESP IV. */
        append_cmd(desc, 0x00000000);
 
        /* Load AES-GMAC ESP IV into Math1 register */
        append_cmd(desc, CMD_SEQ_LOAD | LDST_SRCDST_WORD_DECO_MATH1 |
-                  LDST_CLASS_DECO | tfm->ivsize);
+                  LDST_CLASS_DECO | ivsize);
 
        /* Wait the DMA transaction to finish */
        append_jump(desc, JUMP_TEST_ALL | JUMP_COND_CALM |
 
        /* Overwrite blank immediate AES-GMAC ESP IV data */
        write_iv_cmd = append_move(desc, MOVE_SRC_MATH1 | MOVE_DEST_DESCBUF |
-                                  (tfm->ivsize << MOVE_LEN_SHIFT));
+                                  (ivsize << MOVE_LEN_SHIFT));
 
        /* Overwrite blank immediate AAD data */
        write_aad_cmd = append_move(desc, MOVE_SRC_MATH1 | MOVE_DEST_DESCBUF |
-                                   (tfm->ivsize << MOVE_LEN_SHIFT));
+                                   (ivsize << MOVE_LEN_SHIFT));
 
        /* assoclen = (assoclen + cryptlen) - cryptlen */
        append_math_sub(desc, REG2, SEQOUTLEN, REG0, CAAM_CMD_SZ);
 
        /* Read Salt and AES-GMAC ESP IV */
        append_cmd(desc, CMD_FIFO_LOAD | FIFOLD_CLASS_CLASS1 | IMMEDIATE |
-                  FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | (4 + tfm->ivsize));
+                  FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | (4 + ivsize));
        /* Append Salt */
        append_data(desc, (void *)(ctx->key + ctx->enckeylen), 4);
        set_move_tgt_here(desc, write_iv_cmd);
 
        /* Authenticate AES-GMAC ESP IV  */
        append_cmd(desc, CMD_FIFO_LOAD | FIFOLD_CLASS_CLASS1 | IMMEDIATE |
-                  FIFOLD_TYPE_AAD | tfm->ivsize);
+                  FIFOLD_TYPE_AAD | ivsize);
        set_move_tgt_here(desc, write_aad_cmd);
        /* Blank commands. Will be overwritten by AES-GMAC ESP IV. */
        append_cmd(desc, 0x00000000);
        /* Generate IV */
        geniv = NFIFOENTRY_STYPE_PAD | NFIFOENTRY_DEST_DECO |
                NFIFOENTRY_DTYPE_MSG | NFIFOENTRY_LC1 |
-               NFIFOENTRY_PTYPE_RND | (tfm->ivsize << NFIFOENTRY_DLEN_SHIFT);
+               NFIFOENTRY_PTYPE_RND | (ivsize << NFIFOENTRY_DLEN_SHIFT);
        append_load_imm_u32(desc, geniv, LDST_CLASS_IND_CCB |
                            LDST_SRCDST_WORD_INFO_FIFO | LDST_IMM);
        append_cmd(desc, CMD_LOAD | DISABLE_AUTO_INFO_FIFO);
        /* Move generated IV to Math1 register */
        append_move(desc, MOVE_SRC_INFIFO | MOVE_DEST_MATH1 |
-                   (tfm->ivsize << MOVE_LEN_SHIFT));
+                   (ivsize << MOVE_LEN_SHIFT));
        append_cmd(desc, CMD_LOAD | ENABLE_AUTO_INFO_FIFO);
 
        /* Overwrite blank immediate AES-GMAC IV data */
        write_iv_cmd = append_move(desc, MOVE_SRC_MATH1 | MOVE_DEST_DESCBUF |
-                                  (tfm->ivsize << MOVE_LEN_SHIFT));
+                                  (ivsize << MOVE_LEN_SHIFT));
 
        /* Overwrite blank immediate AAD data */
        write_aad_cmd = append_move(desc, MOVE_SRC_MATH1 | MOVE_DEST_DESCBUF |
-                                   (tfm->ivsize << MOVE_LEN_SHIFT));
+                                   (ivsize << MOVE_LEN_SHIFT));
 
        /* Copy generated IV to OFIFO */
        append_move(desc, MOVE_SRC_MATH1 | MOVE_DEST_OUTFIFO |
-                   (tfm->ivsize << MOVE_LEN_SHIFT));
+                   (ivsize << MOVE_LEN_SHIFT));
 
        /* Class 1 operation */
        append_operation(desc, ctx->class1_alg_type |
 
        /* Read Salt and AES-GMAC generated IV */
        append_cmd(desc, CMD_FIFO_LOAD | FIFOLD_CLASS_CLASS1 | IMMEDIATE |
-                  FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | (4 + tfm->ivsize));
+                  FIFOLD_TYPE_IV | FIFOLD_TYPE_FLUSH1 | (4 + ivsize));
        /* Append Salt */
        append_data(desc, (void *)(ctx->key + ctx->enckeylen), 4);
        set_move_tgt_here(desc, write_iv_cmd);
        /* End of blank commands */
 
        /* No need to reload iv */
-       append_seq_fifo_load(desc, tfm->ivsize, FIFOLD_CLASS_SKIP);
+       append_seq_fifo_load(desc, ivsize, FIFOLD_CLASS_SKIP);
 
        /* Read assoc data */
        append_seq_fifo_load(desc, 0, FIFOLD_CLASS_CLASS1 | FIFOLDST_VLF |
 
        /* Authenticate AES-GMAC IV  */
        append_cmd(desc, CMD_FIFO_LOAD | FIFOLD_CLASS_CLASS1 | IMMEDIATE |
-                  FIFOLD_TYPE_AAD | tfm->ivsize);
+                  FIFOLD_TYPE_AAD | ivsize);
        set_move_tgt_here(desc, write_aad_cmd);
        /* Blank commands. Will be overwritten by AES-GMAC IV. */
        append_cmd(desc, 0x00000000);