From 23fa18eaa71266feff7ba8d83022d9e1cc83c65a Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 10 May 2024 07:42:03 +0000 Subject: [PATCH] disable pwm7 --- kernel/arch/arm64/kernel/efi-rt-wrapper.S | 31 ++++++++++++++++++++----------- 1 files changed, 20 insertions(+), 11 deletions(-) diff --git a/kernel/arch/arm64/kernel/efi-rt-wrapper.S b/kernel/arch/arm64/kernel/efi-rt-wrapper.S index f5cea7b..2d3c4b0 100644 --- a/kernel/arch/arm64/kernel/efi-rt-wrapper.S +++ b/kernel/arch/arm64/kernel/efi-rt-wrapper.S @@ -1,14 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2018 Linaro Ltd <ard.biesheuvel@linaro.org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. */ #include <linux/linkage.h> +#include <asm/assembler.h> -ENTRY(__efi_rt_asm_wrapper) +SYM_FUNC_START(__efi_rt_asm_wrapper) stp x29, x30, [sp, #-32]! mov x29, sp @@ -18,6 +16,12 @@ * (such as UEFI) should never touch it. */ stp x1, x18, [sp, #16] + + ldr_l x16, efi_rt_stack_top + mov sp, x16 +#ifdef CONFIG_SHADOW_CALL_STACK + str x18, [sp, #-16]! +#endif /* * We are lucky enough that no EFI runtime services take more than @@ -32,19 +36,24 @@ mov x4, x6 blr x8 + mov sp, x29 ldp x1, x2, [sp, #16] cmp x2, x18 ldp x29, x30, [sp], #32 b.ne 0f ret 0: -#ifdef CONFIG_SHADOW_CALL_STACK /* - * Restore x18 before returning to instrumented code. This is - * safe because the wrapper is called with preemption disabled and - * a separate shadow stack is used for interrupts. + * With CONFIG_SHADOW_CALL_STACK, the kernel uses x18 to store a + * shadow stack pointer, which we need to restore before returning to + * potentially instrumented code. This is safe because the wrapper is + * called with preemption disabled and a separate shadow stack is used + * for interrupts. */ - mov x18, x2 +#ifdef CONFIG_SHADOW_CALL_STACK + ldr_l x18, efi_rt_stack_top + ldr x18, [x18, #-16] #endif + b efi_handle_corrupted_x18 // tail call -ENDPROC(__efi_rt_asm_wrapper) +SYM_FUNC_END(__efi_rt_asm_wrapper) -- Gitblit v1.6.2