diff mbox series

xilinx: zynqmp: Fix AES with a user provided key

Message ID 20220816124525.19671-1-ylalehto@gmail.com
State Accepted
Commit cf5c48d102bd50eb24eb03ddd5cc1f0c33a3f57a
Delegated to: Michal Simek
Headers show
Series xilinx: zynqmp: Fix AES with a user provided key | expand

Commit Message

Janne Ylalehto Aug. 16, 2022, 12:45 p.m. UTC
The user provided key address was not flushed in struct aes because of
the flushing location in the function.

Signed-off-by: Janne Ylalehto <ylalehto@gmail.com>
---

 board/xilinx/zynqmp/cmds.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Michal Simek Aug. 23, 2022, 8:10 a.m. UTC | #1
On 8/16/22 14:45, Janne Ylalehto wrote:
> The user provided key address was not flushed in struct aes because of
> the flushing location in the function.
> 
> Signed-off-by: Janne Ylalehto <ylalehto@gmail.com>
> ---
> 
>   board/xilinx/zynqmp/cmds.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c
> index 2ab9596248..e20030ecda 100644
> --- a/board/xilinx/zynqmp/cmds.c
> +++ b/board/xilinx/zynqmp/cmds.c
> @@ -142,9 +142,6 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc,
>   	aes->keysrc = hextoul(argv[6], NULL);
>   	aes->dstaddr = hextoul(argv[7], NULL);
>   
> -	flush_dcache_range((ulong)aes, (ulong)(aes) +
> -			   roundup(sizeof(struct aes), ARCH_DMA_MINALIGN));
> -
>   	if (aes->srcaddr && aes->ivaddr && aes->dstaddr) {
>   		flush_dcache_range(aes->srcaddr,
>   				   (aes->srcaddr +
> @@ -169,6 +166,9 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc,
>   						    ARCH_DMA_MINALIGN)));
>   	}
>   
> +	flush_dcache_range((ulong)aes, (ulong)(aes) +
> +			   roundup(sizeof(struct aes), ARCH_DMA_MINALIGN));
> +
>   	ret = xilinx_pm_request(PM_SECURE_AES, upper_32_bits((ulong)aes),
>   				lower_32_bits((ulong)aes), 0, 0, ret_payload);
>   	if (ret || ret_payload[1])

Applied.
M
diff mbox series

Patch

diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c
index 2ab9596248..e20030ecda 100644
--- a/board/xilinx/zynqmp/cmds.c
+++ b/board/xilinx/zynqmp/cmds.c
@@ -142,9 +142,6 @@  static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc,
 	aes->keysrc = hextoul(argv[6], NULL);
 	aes->dstaddr = hextoul(argv[7], NULL);
 
-	flush_dcache_range((ulong)aes, (ulong)(aes) +
-			   roundup(sizeof(struct aes), ARCH_DMA_MINALIGN));
-
 	if (aes->srcaddr && aes->ivaddr && aes->dstaddr) {
 		flush_dcache_range(aes->srcaddr,
 				   (aes->srcaddr +
@@ -169,6 +166,9 @@  static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc,
 						    ARCH_DMA_MINALIGN)));
 	}
 
+	flush_dcache_range((ulong)aes, (ulong)(aes) +
+			   roundup(sizeof(struct aes), ARCH_DMA_MINALIGN));
+
 	ret = xilinx_pm_request(PM_SECURE_AES, upper_32_bits((ulong)aes),
 				lower_32_bits((ulong)aes), 0, 0, ret_payload);
 	if (ret || ret_payload[1])