34 lines
		
	
	
		
			833 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			833 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 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 */
 |