1b61e1f32SHeiko Carstens/* SPDX-License-Identifier: GPL-2.0 */ 2b61e1f32SHeiko Carstens 3b61e1f32SHeiko Carstens#include <linux/linkage.h> 4b61e1f32SHeiko Carstens 5b61e1f32SHeiko Carstens/* 6b61e1f32SHeiko Carstens * insn_page is a special 4k aligned dummy function for kprobes. 7b61e1f32SHeiko Carstens * It will contain all kprobed instructions that are out-of-line executed. 8b61e1f32SHeiko Carstens * The page must be within the kernel image to guarantee that the 9b61e1f32SHeiko Carstens * out-of-line instructions are within 2GB distance of their original 10b61e1f32SHeiko Carstens * location. Using a dummy function ensures that the insn_page is within 11b61e1f32SHeiko Carstens * the text section of the kernel and mapped read-only/executable from 12b61e1f32SHeiko Carstens * the beginning on, thus avoiding to split large mappings if the page 13b61e1f32SHeiko Carstens * would be in the data section instead. 14b61e1f32SHeiko Carstens */ 15b61e1f32SHeiko Carstens .section .kprobes.text, "ax" 16b61e1f32SHeiko Carstens .balign 4096 17*6cea5f0bSHeiko CarstensSYM_CODE_START(kprobes_insn_page) 18b61e1f32SHeiko Carstens .rept 2048 19b61e1f32SHeiko Carstens .word 0x07fe 20b61e1f32SHeiko Carstens .endr 21*6cea5f0bSHeiko CarstensSYM_CODE_END(kprobes_insn_page) 22b61e1f32SHeiko Carstens .previous 23