* [PATCH] arm64: Correct wrong label in macro __init_el2_gicv3
@ 2022-02-14 17:11 Joakim Tjernlund
2022-02-14 17:20 ` Mark Rutland
2022-02-14 17:24 ` Marc Zyngier
0 siblings, 2 replies; 3+ messages in thread
From: Joakim Tjernlund @ 2022-02-14 17:11 UTC (permalink / raw)
To: linux-arm-kernel, Mark Rutland; +Cc: Joakim Tjernlund
If GICv3 init fails, CPU branched to the wrong label causing
a crash much later.
Fixes: 114945d84a30a5fe ("arm64: Fix labels in el2_setup macros")
Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
---
arch/arm64/include/asm/el2_setup.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/include/asm/el2_setup.h b/arch/arm64/include/asm/el2_setup.h
index 3198acb2aad8..7f3c87f7a0ce 100644
--- a/arch/arm64/include/asm/el2_setup.h
+++ b/arch/arm64/include/asm/el2_setup.h
@@ -106,7 +106,7 @@
msr_s SYS_ICC_SRE_EL2, x0
isb // Make sure SRE is now set
mrs_s x0, SYS_ICC_SRE_EL2 // Read SRE back,
- tbz x0, #0, 1f // and check that it sticks
+ tbz x0, #0, .Lskip_gicv3_\@ // and check that it sticks
msr_s SYS_ICH_HCR_EL2, xzr // Reset ICC_HCR_EL2 to defaults
.Lskip_gicv3_\@:
.endm
--
2.32.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: Correct wrong label in macro __init_el2_gicv3
2022-02-14 17:11 [PATCH] arm64: Correct wrong label in macro __init_el2_gicv3 Joakim Tjernlund
@ 2022-02-14 17:20 ` Mark Rutland
2022-02-14 17:24 ` Marc Zyngier
1 sibling, 0 replies; 3+ messages in thread
From: Mark Rutland @ 2022-02-14 17:20 UTC (permalink / raw)
To: Joakim Tjernlund, Marc Zyngier, Will Deacon, Catalin Marinas
Cc: linux-arm-kernel
[Adding Ccs]
On Mon, Feb 14, 2022 at 06:11:57PM +0100, Joakim Tjernlund wrote:
> If GICv3 init fails, CPU branched to the wrong label causing
> a crash much later.
How about:
| In commit:
|
| 114945d84a30a5fe ("arm64: Fix labels in el2_setup macros")
|
| We renamed a label from '1' to '.Lskip_gicv3_\@', but failed to update
| a branch to it, which now targets a later label also called '1'.
|
| The branch is taken rarely, when GICv3 is present but SRE is disabled
| at EL3, causing a boot-time crash.
|
| Update the caller to the new label name.
... since that makes it clear that this is the right fix.
> Fixes: 114945d84a30a5fe ("arm64: Fix labels in el2_setup macros")
> Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
With the wording above:
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Thanks,
Mark.
> ---
> arch/arm64/include/asm/el2_setup.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/el2_setup.h b/arch/arm64/include/asm/el2_setup.h
> index 3198acb2aad8..7f3c87f7a0ce 100644
> --- a/arch/arm64/include/asm/el2_setup.h
> +++ b/arch/arm64/include/asm/el2_setup.h
> @@ -106,7 +106,7 @@
> msr_s SYS_ICC_SRE_EL2, x0
> isb // Make sure SRE is now set
> mrs_s x0, SYS_ICC_SRE_EL2 // Read SRE back,
> - tbz x0, #0, 1f // and check that it sticks
> + tbz x0, #0, .Lskip_gicv3_\@ // and check that it sticks
> msr_s SYS_ICH_HCR_EL2, xzr // Reset ICC_HCR_EL2 to defaults
> .Lskip_gicv3_\@:
> .endm
> --
> 2.32.0
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: Correct wrong label in macro __init_el2_gicv3
2022-02-14 17:11 [PATCH] arm64: Correct wrong label in macro __init_el2_gicv3 Joakim Tjernlund
2022-02-14 17:20 ` Mark Rutland
@ 2022-02-14 17:24 ` Marc Zyngier
1 sibling, 0 replies; 3+ messages in thread
From: Marc Zyngier @ 2022-02-14 17:24 UTC (permalink / raw)
To: Joakim Tjernlund
Cc: linux-arm-kernel, Mark Rutland, Catalin Marinas, Will Deacon
[+ Catalin, Will]
On Mon, 14 Feb 2022 17:11:57 +0000,
Joakim Tjernlund <joakim.tjernlund@infinera.com> wrote:
>
> If GICv3 init fails, CPU branched to the wrong label causing
> a crash much later.
>
> Fixes: 114945d84a30a5fe ("arm64: Fix labels in el2_setup macros")
> Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
This deserves a
Cc: stable@vger.kernel.org
> ---
> arch/arm64/include/asm/el2_setup.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/el2_setup.h b/arch/arm64/include/asm/el2_setup.h
> index 3198acb2aad8..7f3c87f7a0ce 100644
> --- a/arch/arm64/include/asm/el2_setup.h
> +++ b/arch/arm64/include/asm/el2_setup.h
> @@ -106,7 +106,7 @@
> msr_s SYS_ICC_SRE_EL2, x0
> isb // Make sure SRE is now set
> mrs_s x0, SYS_ICC_SRE_EL2 // Read SRE back,
> - tbz x0, #0, 1f // and check that it sticks
> + tbz x0, #0, .Lskip_gicv3_\@ // and check that it sticks
> msr_s SYS_ICH_HCR_EL2, xzr // Reset ICC_HCR_EL2 to defaults
> .Lskip_gicv3_\@:
> .endm
Nice catch!
Reviewed-by: Marc Zyngier <maz@kernel.org>
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-02-14 17:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-14 17:11 [PATCH] arm64: Correct wrong label in macro __init_el2_gicv3 Joakim Tjernlund
2022-02-14 17:20 ` Mark Rutland
2022-02-14 17:24 ` Marc Zyngier
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).