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