mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

While the GCC and Clang compilers already define __ASSEMBLER__ automatically when compiling assembly code, __ASSEMBLY__ is a macro that only gets defined by the Makefiles in the kernel. This can be very confusing when switching between userspace and kernelspace coding, or when dealing with UAPI headers that rather should use __ASSEMBLER__ instead. So let's standardize on the __ASSEMBLER__ macro that is provided by the compilers now. This is mostly a mechanical patch (done with a simple "sed -i" statement), with some manual tweaks in <asm/frame.h>, <asm/hw_irq.h> and <asm/setup.h> that mentioned this macro in comments with some missing underscores. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Brian Gerst <brgerst@gmail.com> Cc: Juergen Gross <jgross@suse.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Kees Cook <keescook@chromium.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250314071013.1575167-38-thuth@redhat.com
41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _ASM_X86_KASAN_H
|
|
#define _ASM_X86_KASAN_H
|
|
|
|
#include <linux/const.h>
|
|
#define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL)
|
|
#define KASAN_SHADOW_SCALE_SHIFT 3
|
|
|
|
/*
|
|
* Compiler uses shadow offset assuming that addresses start
|
|
* from 0. Kernel addresses don't start from 0, so shadow
|
|
* for kernel really starts from compiler's shadow offset +
|
|
* 'kernel address space start' >> KASAN_SHADOW_SCALE_SHIFT
|
|
*/
|
|
#define KASAN_SHADOW_START (KASAN_SHADOW_OFFSET + \
|
|
((-1UL << __VIRTUAL_MASK_SHIFT) >> \
|
|
KASAN_SHADOW_SCALE_SHIFT))
|
|
/*
|
|
* 47 bits for kernel address -> (47 - KASAN_SHADOW_SCALE_SHIFT) bits for shadow
|
|
* 56 bits for kernel address -> (56 - KASAN_SHADOW_SCALE_SHIFT) bits for shadow
|
|
*/
|
|
#define KASAN_SHADOW_END (KASAN_SHADOW_START + \
|
|
(1ULL << (__VIRTUAL_MASK_SHIFT - \
|
|
KASAN_SHADOW_SCALE_SHIFT)))
|
|
|
|
#ifndef __ASSEMBLER__
|
|
|
|
#ifdef CONFIG_KASAN
|
|
void __init kasan_early_init(void);
|
|
void __init kasan_init(void);
|
|
void __init kasan_populate_shadow_for_vaddr(void *va, size_t size, int nid);
|
|
#else
|
|
static inline void kasan_early_init(void) { }
|
|
static inline void kasan_init(void) { }
|
|
static inline void kasan_populate_shadow_for_vaddr(void *va, size_t size,
|
|
int nid) { }
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|