]> git.itanic.dy.fi Git - linux-stable/commitdiff
crypto: sun8i-ss - Fix a test in sun8i_ss_setup_ivs()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Mon, 17 Apr 2023 20:25:09 +0000 (22:25 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 May 2023 09:50:20 +0000 (11:50 +0200)
[ Upstream commit 8fd91151ebcb21b3f2f2bf158ac6092192550b2b ]

SS_ENCRYPTION is (0 << 7 = 0), so the test can never be true.
Use a direct comparison to SS_ENCRYPTION instead.

The same king of test is already done the same way in sun8i_ss_run_task().

Fixes: 359e893e8af4 ("crypto: sun8i-ss - rework handling of IV")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c

index 005eefecfdf594c0085a3f767341e15fcb695bf1..0cc8cafdde27cc967e160ad1543c9a02b1b235a2 100644 (file)
@@ -132,7 +132,7 @@ static int sun8i_ss_setup_ivs(struct skcipher_request *areq)
                }
                rctx->p_iv[i] = a;
                /* we need to setup all others IVs only in the decrypt way */
-               if (rctx->op_dir & SS_ENCRYPTION)
+               if (rctx->op_dir == SS_ENCRYPTION)
                        return 0;
                todo = min(len, sg_dma_len(sg));
                len -= todo;