/* 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 */