| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (C) 2020 Western Digital Corporation or its affiliates. |
| */ |
| #ifndef __ASM_SECTIONS_H |
| #define __ASM_SECTIONS_H |
| |
| #include <asm-generic/sections.h> |
| #include <linux/mm.h> |
| |
| extern char _start[]; |
| extern char _start_kernel[]; |
| extern char __init_data_begin[], __init_data_end[]; |
| extern char __init_text_begin[], __init_text_end[]; |
| extern char __alt_start[], __alt_end[]; |
| |
| static inline bool is_va_kernel_text(uintptr_t va) |
| { |
| uintptr_t start = (uintptr_t)_start; |
| uintptr_t end = (uintptr_t)__init_data_begin; |
| |
| return va >= start && va < end; |
| } |
| |
| static inline bool is_va_kernel_lm_alias_text(uintptr_t va) |
| { |
| uintptr_t start = (uintptr_t)lm_alias(_start); |
| uintptr_t end = (uintptr_t)lm_alias(__init_data_begin); |
| |
| return va >= start && va < end; |
| } |
| |
| #endif /* __ASM_SECTIONS_H */ |