xref: /openbmc/linux/arch/s390/kernel/kprobes_insn_page.S (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
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