[PATCH master] ARM: psci: client: fix power off and reset via 64-bit secure monitor
Sascha Hauer
sha at pengutronix.de
Sun Oct 17 23:46:51 PDT 2021
On Fri, Oct 15, 2021 at 06:05:44PM +0200, Ahmad Fatoum wrote:
> The PSCI function code is a 32-bit integer > 0x80000000, but the
> the PSCI client code erroneously casted it to a signed integer.
>
> On 32-bit systems, the cast later on to unsigned long restored the
> original value, but on 64-bit system, we passed a very large 64-bit
> number in the secure monitor call because of the sign extension.
>
> This worked because TF-A seems to ignore the upper 32-bits anyway,
> (tested with i.MX8MN), but for other secure monitors like the default
> HVC implementation for QEMU ARM64 Virt machine this didn't hold true
> for all commands, leading to aborts when doing reset or poweroff.
>
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> arch/arm/cpu/psci-client.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Applied, thanks
Sascha
>
> diff --git a/arch/arm/cpu/psci-client.c b/arch/arm/cpu/psci-client.c
> index b5d0d3749702..7d5b3768b59e 100644
> --- a/arch/arm/cpu/psci-client.c
> +++ b/arch/arm/cpu/psci-client.c
> @@ -15,7 +15,7 @@
>
> static struct restart_handler restart;
>
> -static void __noreturn psci_invoke_noreturn(int function)
> +static void __noreturn psci_invoke_noreturn(ulong function)
> {
> int ret;
>
> --
> 2.30.2
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list