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 11extern char _start[]; 12extern char _start_kernel[]; 13extern char __init_data_begin[], __init_data_end[]; 14extern char __init_text_begin[], __init_text_end[]; 15extern char __alt_start[], __alt_end[]; 16extern char __exittext_begin[], __exittext_end[]; 17 18static 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 26static 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