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 extern char __exittext_begin[], __exittext_end[]; 17 18 static inline bool is_va_kernel_text(uintptr_t va) 19 { 20 uintptr_t start = (uintptr_t)_start; 21 uintptr_t end = (uintptr_t)__init_data_begin; 22 23 return va >= start && va < end; 24 } 25 26 static inline bool is_va_kernel_lm_alias_text(uintptr_t va) 27 { 28 uintptr_t start = (uintptr_t)lm_alias(_start); 29 uintptr_t end = (uintptr_t)lm_alias(__init_data_begin); 30 31 return va >= start && va < end; 32 } 33 34 #endif /* __ASM_SECTIONS_H */ 35