FAILED: patch "[PATCH] crypto: sun4i-ss - handle BigEndian for cipher" failed to apply to 4.9-stable tree
[email protected]
maintainerThe patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 5ab6177fa02df15cd8a02a1f1fb361d2d5d8b946 Mon Sep 17 00:00:00 2001
From: Corentin Labbe <[email protected]>
Date: Mon, 14 Dec 2020 20:02:28 +0000
Subject: [PATCH] crypto: sun4i-ss - handle BigEndian for cipher
Ciphers produce invalid results on BE.
Key and IV need to be written in LE.
Fixes 6298e948215f2 ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator")
Cc <[email protected]>
Signed-off-by Corentin Labbe <[email protected]>
Signed-off-by Herbert Xu <[email protected]>
drivers/crypto/allwinner/sun4i-ss/sun4i-ss-cipher.c +6 -6
@@ -52,13 +52,13 @@ static int noinline_for_stack sun4i_ss_opti_poll(struct skcipher_request *areq)spin_lock_irqsave (&ss->slock, flags); -for (i =0 ; i < op->keylen; i +=4 ) -writel (*(op->key + i /4 ), ss->base +SS_KEY0 + i); +for (i =0 ; i < op->keylen /4 ; i++) +writesl (ss->base +SS_KEY0 + i *4 , &op->key[i],1 );if (areq->iv) {for (i =0 ; i <4 && i < ivsize /4 ; i++) { v = *(u32 *)(areq->iv + i *4 ); -writel (v, ss->base +SS_IV0 + i *4 ); +writesl (ss->base +SS_IV0 + i *4 , &v,1 ); } }writel (mode, ss->base +SS_CTL );
@@ -223,13 +223,13 @@ static int sun4i_ss_cipher_poll(struct skcipher_request *areq)spin_lock_irqsave (&ss->slock, flags); -for (i =0 ; i < op->keylen; i +=4 ) -writel (*(op->key + i /4 ), ss->base +SS_KEY0 + i); +for (i =0 ; i < op->keylen /4 ; i++) +writesl (ss->base +SS_KEY0 + i *4 , &op->key[i],1 );if (areq->iv) {for (i =0 ; i <4 && i < ivsize /4 ; i++) { v = *(u32 *)(areq->iv + i *4 ); -writel (v, ss->base +SS_IV0 + i *4 ); +writesl (ss->base +SS_IV0 + i *4 , &v,1 ); } }writel (mode, ss->base +SS_CTL );