From: Ard Biesheuvel <ardb+git@google.com>
To: linux-efi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Ard Biesheuvel <ardb@kernel.org>, Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>
Subject: [RFC PATCH 6/7] arm64/efi: Move uaccess en/disable out of efi_set_pgd()
Date: Wed, 14 May 2025 19:43:46 +0200 [thread overview]
Message-ID: <20250514174339.1834871-15-ardb+git@google.com> (raw)
In-Reply-To: <20250514174339.1834871-9-ardb+git@google.com>
From: Ard Biesheuvel <ardb@kernel.org>
efi_set_pgd() will no longer be called when invoking EFI runtime
services via the efi_rts_wq work queue, but the uaccess en/disable are
still needed when using PAN emulation using TTBR0 switching. So move
these into the callers.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
arch/arm64/include/asm/efi.h | 3 ---
arch/arm64/kernel/efi.c | 3 +++
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/include/asm/efi.h b/arch/arm64/include/asm/efi.h
index decf87777f57..abe9176a3a23 100644
--- a/arch/arm64/include/asm/efi.h
+++ b/arch/arm64/include/asm/efi.h
@@ -132,15 +132,12 @@ static inline void efi_set_pgd(struct mm_struct *mm)
* exception when invoking the EFI run-time services.
*/
update_saved_ttbr0(current, mm);
- uaccess_ttbr0_enable();
- post_ttbr_update_workaround();
} else {
/*
* Defer the switch to the current thread's TTBR0_EL1
* until uaccess_enable(). Restore the current
* thread's saved ttbr0 corresponding to its active_mm
*/
- uaccess_ttbr0_disable();
update_saved_ttbr0(current, current->active_mm);
}
}
diff --git a/arch/arm64/kernel/efi.c b/arch/arm64/kernel/efi.c
index d01ae156bb63..5d188c6c44d7 100644
--- a/arch/arm64/kernel/efi.c
+++ b/arch/arm64/kernel/efi.c
@@ -177,6 +177,8 @@ bool arch_efi_call_virt_setup(void)
return false;
efi_virtmap_load();
+ uaccess_ttbr0_enable();
+ post_ttbr_update_workaround();
__efi_fpsimd_begin();
return true;
}
@@ -185,6 +187,7 @@ void arch_efi_call_virt_teardown(void)
{
__efi_fpsimd_end();
efi_virtmap_unload();
+ uaccess_ttbr0_disable();
up(&efi_rt_lock);
}
--
2.49.0.1101.gccaa498523-goog
next prev parent reply other threads:[~2025-05-14 18:34 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-14 17:43 [RFC PATCH 0/7] arm64: Make EFI calls preemptible Ard Biesheuvel
2025-05-14 17:43 ` [RFC PATCH 1/7] efi: Add missing static initializer for efi_mm::cpus_allowed_lock Ard Biesheuvel
2025-05-14 17:43 ` [RFC PATCH 2/7] efi/runtime: Return success/failure from arch_efi_call_virt_setup() Ard Biesheuvel
2025-05-14 17:43 ` [RFC PATCH 3/7] efi/runtime: Deal with arch_efi_call_virt_setup() returning failure Ard Biesheuvel
2025-05-14 17:43 ` [RFC PATCH 4/7] arm64/fpsimd: Don't warn when EFI execution context is preemptible Ard Biesheuvel
2025-05-14 17:43 ` [RFC PATCH 5/7] arm64/efi: Use a semaphore to protect the EFI stack and FP/SIMD state Ard Biesheuvel
2025-05-14 17:43 ` Ard Biesheuvel [this message]
2025-07-11 13:41 ` [RFC PATCH 6/7] arm64/efi: Move uaccess en/disable out of efi_set_pgd() Will Deacon
2025-07-14 6:38 ` Ard Biesheuvel
2025-05-14 17:43 ` [RFC PATCH 7/7] arm64/efi: Call EFI runtime services without disabling preemption Ard Biesheuvel
2025-07-11 13:48 ` Peter Zijlstra
2025-07-14 2:20 ` Ard Biesheuvel
2025-07-14 10:55 ` Peter Zijlstra
2025-07-15 0:46 ` Ard Biesheuvel
2025-07-11 13:44 ` [RFC PATCH 0/7] arm64: Make EFI calls preemptible Will Deacon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250514174339.1834871-15-ardb+git@google.com \
--to=ardb+git@google.com \
--cc=ardb@kernel.org \
--cc=bigeasy@linutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=peterz@infradead.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.