diff mbox series

powerpc/kasan: Mark more real-mode code as not to be instrumented

Message ID YoX1kZPnmUX4RZEK@cleo (mailing list archive)
State Accepted
Headers show
Series powerpc/kasan: Mark more real-mode code as not to be instrumented | expand

Commit Message

Paul Mackerras May 19, 2022, 7:45 a.m. UTC
This marks more files and functions that can possibly be called in
real mode as not to be instrumented by KASAN.  Most were found by
inspection, except for get_pseries_errorlog() which was reported as
causing a crash in testing.

Reported-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
---
 arch/powerpc/kernel/Makefile            | 2 ++
 arch/powerpc/kernel/rtas.c              | 4 ++--
 arch/powerpc/kexec/crash.c              | 2 +-
 arch/powerpc/platforms/powernv/Makefile | 1 +
 4 files changed, 6 insertions(+), 3 deletions(-)

Comments

Michael Ellerman June 9, 2022, 2:44 p.m. UTC | #1
On Thu, 19 May 2022 17:45:21 +1000, Paul Mackerras wrote:
> This marks more files and functions that can possibly be called in
> real mode as not to be instrumented by KASAN.  Most were found by
> inspection, except for get_pseries_errorlog() which was reported as
> causing a crash in testing.
> 
> 

Applied to powerpc/fixes.

[1/1] powerpc/kasan: Mark more real-mode code as not to be instrumented
      https://git.kernel.org/powerpc/c/743cdb7bd0f1cb32c03680c8b38257957db2e692

cheers
diff mbox series

Patch

diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index e46335da7f72..e9aec39f734f 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -37,6 +37,8 @@  KASAN_SANITIZE_paca.o := n
 KASAN_SANITIZE_setup_64.o := n
 KASAN_SANITIZE_mce.o := n
 KASAN_SANITIZE_mce_power.o := n
+KASAN_SANITIZE_udbg.o := n
+KASAN_SANITIZE_udbg_16550.o := n
 
 # we have to be particularly careful in ppc64 to exclude code that
 # runs with translations off, as we cannot access the shadow with
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index 733e6ef36758..dbba4ff6b8cf 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -974,8 +974,8 @@  int rtas_call_reentrant(int token, int nargs, int nret, int *outputs, ...)
  *
  * Return: A pointer to the specified errorlog or NULL if not found.
  */
-struct pseries_errorlog *get_pseries_errorlog(struct rtas_error_log *log,
-					      uint16_t section_id)
+noinstr struct pseries_errorlog *get_pseries_errorlog(struct rtas_error_log *log,
+						      uint16_t section_id)
 {
 	struct rtas_ext_event_log_v6 *ext_log =
 		(struct rtas_ext_event_log_v6 *)log->buffer;
diff --git a/arch/powerpc/kexec/crash.c b/arch/powerpc/kexec/crash.c
index 22ceeeb705ab..968dbbe49f12 100644
--- a/arch/powerpc/kexec/crash.c
+++ b/arch/powerpc/kexec/crash.c
@@ -225,7 +225,7 @@  void crash_kexec_secondary(struct pt_regs *regs)
 
 /* wait for all the CPUs to hit real mode but timeout if they don't come in */
 #if defined(CONFIG_SMP) && defined(CONFIG_PPC64)
-static void __maybe_unused crash_kexec_wait_realmode(int cpu)
+noinstr static void __maybe_unused crash_kexec_wait_realmode(int cpu)
 {
 	unsigned int msecs;
 	int i;
diff --git a/arch/powerpc/platforms/powernv/Makefile b/arch/powerpc/platforms/powernv/Makefile
index 6488b3842199..19f0fc5c6f1b 100644
--- a/arch/powerpc/platforms/powernv/Makefile
+++ b/arch/powerpc/platforms/powernv/Makefile
@@ -4,6 +4,7 @@ 
 # in particular, idle code runs a bunch of things in real mode
 KASAN_SANITIZE_idle.o := n
 KASAN_SANITIZE_pci-ioda.o := n
+KASAN_SANITIZE_pci-ioda-tce.o := n
 # pnv_machine_check_early
 KASAN_SANITIZE_setup.o := n