* [PATCH] crypto: sun8i-ce - Fix big-endian read of t_common_ctl
@ 2020-09-04 8:11 Herbert Xu
2020-09-04 10:40 ` Corentin Labbe
0 siblings, 1 reply; 2+ messages in thread
From: Herbert Xu @ 2020-09-04 8:11 UTC (permalink / raw)
To: Corentin Labbe, Linux Crypto Mailing List
The field t_common_ctl is supposed to be little-endian and indeed
when it is filled in we've already done a cpu_to_le32 on it.
However, in sun8i_ce_run_task it is taken as CPU-endian which is
obviously wrong on BE. This patch fixes it.
Fixes: 93c7f4d357de ("crypto: sun8i-ce - enable working on big...")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
index 138759dc8190..703a60d4e2f6 100644
--- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
+++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
@@ -120,7 +120,7 @@ int sun8i_ce_run_task(struct sun8i_ce_dev *ce, int flow, const char *name)
/* Be sure all data is written before enabling the task */
wmb();
- v = 1 | (ce->chanlist[flow].tl->t_common_ctl & 0x7F) << 8;
+ v = 1 | (le32_to_cpu(ce->chanlist[flow].tl->t_common_ctl) & 0x7F) << 8;
writel(v, ce->base + CE_TLR);
mutex_unlock(&ce->mlock);
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] crypto: sun8i-ce - Fix big-endian read of t_common_ctl
2020-09-04 8:11 [PATCH] crypto: sun8i-ce - Fix big-endian read of t_common_ctl Herbert Xu
@ 2020-09-04 10:40 ` Corentin Labbe
0 siblings, 0 replies; 2+ messages in thread
From: Corentin Labbe @ 2020-09-04 10:40 UTC (permalink / raw)
To: Herbert Xu; +Cc: Linux Crypto Mailing List
On Fri, Sep 04, 2020 at 06:11:22PM +1000, Herbert Xu wrote:
> The field t_common_ctl is supposed to be little-endian and indeed
> when it is filled in we've already done a cpu_to_le32 on it.
> However, in sun8i_ce_run_task it is taken as CPU-endian which is
> obviously wrong on BE. This patch fixes it.
>
> Fixes: 93c7f4d357de ("crypto: sun8i-ce - enable working on big...")
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
>
> diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
> index 138759dc8190..703a60d4e2f6 100644
> --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
> +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
> @@ -120,7 +120,7 @@ int sun8i_ce_run_task(struct sun8i_ce_dev *ce, int flow, const char *name)
> /* Be sure all data is written before enabling the task */
> wmb();
>
> - v = 1 | (ce->chanlist[flow].tl->t_common_ctl & 0x7F) << 8;
> + v = 1 | (le32_to_cpu(ce->chanlist[flow].tl->t_common_ctl) & 0x7F) << 8;
> writel(v, ce->base + CE_TLR);
> mutex_unlock(&ce->mlock);
>
This patch is in my hash/rng serie, I will resend it today.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-09-04 10:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-04 8:11 [PATCH] crypto: sun8i-ce - Fix big-endian read of t_common_ctl Herbert Xu
2020-09-04 10:40 ` Corentin Labbe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).