1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2020 Western Digital Corporation or its affiliates. 4 */ 5 #ifndef __ASM_SECTIONS_H 6 #define __ASM_SECTIONS_H 7 8 #include <asm-generic/sections.h> 9 #include <linux/mm.h> 10 11 extern char _start[]; 12 extern char _start_kernel[]; 13 extern char __init_data_begin[], __init_data_end[]; 14 extern char __init_text_begin[], __init_text_end[]; 15 extern char __alt_start[], __alt_end[]; 16 17 static inline bool is_va_kernel_text(uintptr_t va) 18 { 19 uintptr_t start = (uintptr_t)_start; 20 uintptr_t end = (uintptr_t)__init_data_begin; 21 22 return va >= start && va < end; 23 } 24 25 static inline bool is_va_kernel_lm_alias_text(uintptr_t va) 26 { 27 uintptr_t start = (uintptr_t)lm_alias(_start); 28 uintptr_t end = (uintptr_t)lm_alias(__init_data_begin); 29 30 return va >= start && va < end; 31 } 32 33 #endif /* __ASM_SECTIONS_H */ 34