Reviewed-by: Ruchika Gupta <ruchika.gupta@xxxxxxxxxxxxx> > -----Original Message----- > From: Vakul Garg [mailto:vakul@xxxxxxxxxxxxx] > Sent: Sunday, April 27, 2014 8:56 PM > To: linux-crypto@xxxxxxxxxxxxxxx > Cc: herbert@xxxxxxxxxxxxxxxxxxx; Geanta Neag Horia Ioan-B05471; Gupta > Ruchika-R66431; Porosanu Alexandru-B06830 > Subject: [PATCH] crypto: caam - Fix key inlining in AEAD shared descriptors > > The variable 'keys_fit_inline' is initialised correctly to avoid using its > stale value while creating shared descriptor for decryption and given-iv- > encryption. > > Signed-off-by: Vakul Garg <vakul@xxxxxxxxxxxxx> > --- > drivers/crypto/caam/caamalg.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c > index 5f89125..99fda94 100644 > --- a/drivers/crypto/caam/caamalg.c > +++ b/drivers/crypto/caam/caamalg.c > @@ -209,7 +209,7 @@ static int aead_null_set_sh_desc(struct crypto_aead > *aead) > struct aead_tfm *tfm = &aead->base.crt_aead; > struct caam_ctx *ctx = crypto_aead_ctx(aead); > struct device *jrdev = ctx->jrdev; > - bool keys_fit_inline = false; > + bool keys_fit_inline; > u32 *key_jump_cmd, *jump_cmd, *read_move_cmd, *write_move_cmd; > u32 *desc; > > @@ -220,6 +220,8 @@ static int aead_null_set_sh_desc(struct crypto_aead > *aead) > if (DESC_AEAD_NULL_ENC_LEN + DESC_JOB_IO_LEN + > ctx->split_key_pad_len <= CAAM_DESC_BYTES_MAX) > keys_fit_inline = true; > + else > + keys_fit_inline = false; > > /* aead_encrypt shared descriptor */ > desc = ctx->sh_desc_enc; > @@ -306,6 +308,8 @@ static int aead_null_set_sh_desc(struct crypto_aead > *aead) > if (DESC_AEAD_NULL_DEC_LEN + DESC_JOB_IO_LEN + > ctx->split_key_pad_len <= CAAM_DESC_BYTES_MAX) > keys_fit_inline = true; > + else > + keys_fit_inline = false; > > desc = ctx->sh_desc_dec; > > @@ -399,7 +403,7 @@ static int aead_set_sh_desc(struct crypto_aead *aead) > struct aead_tfm *tfm = &aead->base.crt_aead; > struct caam_ctx *ctx = crypto_aead_ctx(aead); > struct device *jrdev = ctx->jrdev; > - bool keys_fit_inline = false; > + bool keys_fit_inline; > u32 geniv, moveiv; > u32 *desc; > > @@ -418,6 +422,9 @@ static int aead_set_sh_desc(struct crypto_aead *aead) > ctx->split_key_pad_len + ctx->enckeylen <= > CAAM_DESC_BYTES_MAX) > keys_fit_inline = true; > + else > + keys_fit_inline = false; > + > > /* aead_encrypt shared descriptor */ > desc = ctx->sh_desc_enc; > @@ -476,6 +483,8 @@ static int aead_set_sh_desc(struct crypto_aead *aead) > ctx->split_key_pad_len + ctx->enckeylen <= > CAAM_DESC_BYTES_MAX) > keys_fit_inline = true; > + else > + keys_fit_inline = false; > > /* aead_decrypt shared descriptor */ > desc = ctx->sh_desc_dec; > @@ -531,6 +540,8 @@ static int aead_set_sh_desc(struct crypto_aead *aead) > ctx->split_key_pad_len + ctx->enckeylen <= > CAAM_DESC_BYTES_MAX) > keys_fit_inline = true; > + else > + keys_fit_inline = false; > > /* aead_givencrypt shared descriptor */ > desc = ctx->sh_desc_givenc; > -- > 1.8.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html