| From foo@baz Sat Mar 19 01:51:18 PM CET 2022 |
| From: James Morse <james.morse@arm.com> |
| Date: Fri, 18 Mar 2022 17:48:24 +0000 |
| Subject: arm64: entry.S: Add ventry overflow sanity checks |
| To: stable@vger.kernel.org |
| Cc: linux-kernel@vger.kernel.org, james.morse@arm.com, catalin.marinas@arm.com |
| Message-ID: <20220318174842.2321061-5-james.morse@arm.com> |
| |
| From: James Morse <james.morse@arm.com> |
| |
| commit 4330e2c5c04c27bebf89d34e0bc14e6943413067 upstream. |
| |
| Subsequent patches add even more code to the ventry slots. |
| Ensure kernels that overflow a ventry slot don't get built. |
| |
| Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> |
| Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> |
| Signed-off-by: James Morse <james.morse@arm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/arm64/kernel/entry.S | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/arch/arm64/kernel/entry.S |
| +++ b/arch/arm64/kernel/entry.S |
| @@ -70,6 +70,7 @@ |
| |
| .macro kernel_ventry, el, label, regsize = 64 |
| .align 7 |
| +.Lventry_start\@: |
| #ifdef CONFIG_UNMAP_KERNEL_AT_EL0 |
| alternative_if ARM64_UNMAP_KERNEL_AT_EL0 |
| .if \el == 0 |
| @@ -127,6 +128,7 @@ alternative_else_nop_endif |
| mrs x0, tpidrro_el0 |
| #endif |
| b el\()\el\()_\label |
| +.org .Lventry_start\@ + 128 // Did we overflow the ventry slot? |
| .endm |
| |
| .macro tramp_alias, dst, sym |
| @@ -984,6 +986,7 @@ alternative_insn isb, nop, ARM64_WORKARO |
| add x30, x30, #(1b - tramp_vectors) |
| isb |
| ret |
| +.org 1b + 128 // Did we overflow the ventry slot? |
| .endm |
| |
| .macro tramp_exit, regsize = 64 |