/kernel/linux/linux-6.6/arch/arm64/include/asm/ |
H A D | asm-extable.h | 28 #define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 32 .long ((fixup) - .); \ 40 #define _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero) \ 41 __ASM_EXTABLE_RAW(insn, fixup, \ 48 #define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \ 49 _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, wzr) 51 #define _ASM_EXTABLE_UACCESS(insn, fixup) \ 52 _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, wzr, wzr) 55 * Create an exception table entry for uaccess `insn`, which will branch to `fixup` 58 .macro _asm_extable_uaccess, insn, fixup [all...] |
/kernel/linux/linux-5.10/arch/powerpc/lib/ |
H A D | feature-fixups.c | 636 static struct fixup_entry fixup; variable 651 fixup.value = fixup.mask = 8; in test_basic_patching() 652 fixup.start_off = calc_offset(&fixup, ftr_fixup_test1 + 1); in test_basic_patching() 653 fixup.end_off = calc_offset(&fixup, ftr_fixup_test1 + 2); in test_basic_patching() 654 fixup.alt_start_off = fixup.alt_end_off = 0; in test_basic_patching() 660 patch_feature_section(8, &fixup); in test_basic_patching() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/lib/ |
H A D | feature-fixups.c | 710 static struct fixup_entry fixup; variable 725 fixup.value = fixup.mask = 8; in test_basic_patching() 726 fixup.start_off = calc_offset(&fixup, ftr_fixup_test1 + 1); in test_basic_patching() 727 fixup.end_off = calc_offset(&fixup, ftr_fixup_test1 + 2); in test_basic_patching() 728 fixup.alt_start_off = fixup.alt_end_off = 0; in test_basic_patching() 734 patch_feature_section(8, &fixup); in test_basic_patching() [all...] |
/kernel/linux/linux-6.6/arch/riscv/include/asm/ |
H A D | asm-extable.h | 14 #define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 18 .long ((fixup) - .); \ 23 .macro _asm_extable, insn, fixup 24 __ASM_EXTABLE_RAW(\insn, \fixup, EX_TYPE_FIXUP, 0) 33 #define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 37 ".long ((" fixup ") - .)\n" \ 42 #define _ASM_EXTABLE(insn, fixup) \ 43 __ASM_EXTABLE_RAW(#insn, #fixup, __stringify(EX_TYPE_FIXUP), "0") 53 #define _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero) \ 55 __ASM_EXTABLE_RAW(#insn, #fixup, \ [all...] |
/kernel/linux/linux-5.10/arch/s390/lib/ |
H A D | probes.c | 48 /* default fixup method */ in probe_get_fixup_type() 49 int fixup = FIXUP_PSW_NORMAL; in probe_get_fixup_type() local 54 fixup = FIXUP_RETURN_REGISTER; in probe_get_fixup_type() 57 fixup |= FIXUP_BRANCH_NOT_TAKEN; in probe_get_fixup_type() 61 fixup = FIXUP_BRANCH_NOT_TAKEN; in probe_get_fixup_type() 65 fixup = FIXUP_RETURN_REGISTER; in probe_get_fixup_type() 71 fixup = FIXUP_BRANCH_NOT_TAKEN; in probe_get_fixup_type() 74 fixup = FIXUP_NOT_REQUIRED; in probe_get_fixup_type() 78 fixup = FIXUP_NOT_REQUIRED; in probe_get_fixup_type() 82 fixup | in probe_get_fixup_type() [all...] |
/kernel/linux/linux-6.6/arch/s390/lib/ |
H A D | probes.c | 48 /* default fixup method */ in probe_get_fixup_type() 49 int fixup = FIXUP_PSW_NORMAL; in probe_get_fixup_type() local 54 fixup = FIXUP_RETURN_REGISTER; in probe_get_fixup_type() 57 fixup |= FIXUP_BRANCH_NOT_TAKEN; in probe_get_fixup_type() 61 fixup = FIXUP_BRANCH_NOT_TAKEN; in probe_get_fixup_type() 65 fixup = FIXUP_RETURN_REGISTER; in probe_get_fixup_type() 71 fixup = FIXUP_BRANCH_NOT_TAKEN; in probe_get_fixup_type() 74 fixup = FIXUP_NOT_REQUIRED; in probe_get_fixup_type() 78 fixup = FIXUP_NOT_REQUIRED; in probe_get_fixup_type() 82 fixup | in probe_get_fixup_type() [all...] |
/kernel/linux/linux-5.10/arch/loongarch/include/asm/ |
H A D | asm-extable.h | 11 #define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 15 .long ((fixup) - .); \ 20 .macro _asm_extable, insn, fixup 21 __ASM_EXTABLE_RAW(\insn, \fixup, EX_TYPE_FIXUP, 0) 30 #define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 34 ".long ((" fixup ") - .)\n" \ 39 #define _ASM_EXTABLE(insn, fixup) \ 40 __ASM_EXTABLE_RAW(#insn, #fixup, __stringify(EX_TYPE_FIXUP), "0") 50 #define _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero) \ 52 __ASM_EXTABLE_RAW(#insn, #fixup, \ [all...] |
/kernel/linux/linux-6.6/arch/loongarch/include/asm/ |
H A D | asm-extable.h | 12 #define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 16 .long ((fixup) - .); \ 21 .macro _asm_extable, insn, fixup 22 __ASM_EXTABLE_RAW(\insn, \fixup, EX_TYPE_FIXUP, 0) 31 #define __ASM_EXTABLE_RAW(insn, fixup, type, data) \ 35 ".long ((" fixup ") - .)\n" \ 40 #define _ASM_EXTABLE(insn, fixup) \ 41 __ASM_EXTABLE_RAW(#insn, #fixup, __stringify(EX_TYPE_FIXUP), "0") 51 #define _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero) \ 53 __ASM_EXTABLE_RAW(#insn, #fixup, \ [all...] |
/kernel/linux/linux-5.10/arch/alpha/include/asm/ |
H A D | extable.h | 17 * The exception fixup information "just so happens" to be arranged 35 } fixup; member 41 if ((_fixup)->fixup.bits.valreg != 31) \ 42 map_reg((_fixup)->fixup.bits.valreg) = 0; \ 43 if ((_fixup)->fixup.bits.errreg != 31) \ 44 map_reg((_fixup)->fixup.bits.errreg) = -EFAULT; \ 45 (pc) + (_fixup)->fixup.bits.nextinsn; \ 52 (a)->fixup.unit = (b)->fixup.unit; \ 53 (b)->fixup [all...] |
/kernel/linux/linux-6.6/arch/alpha/include/asm/ |
H A D | extable.h | 17 * The exception fixup information "just so happens" to be arranged 35 } fixup; member 41 if ((_fixup)->fixup.bits.valreg != 31) \ 42 map_reg((_fixup)->fixup.bits.valreg) = 0; \ 43 if ((_fixup)->fixup.bits.errreg != 31) \ 44 map_reg((_fixup)->fixup.bits.errreg) = -EFAULT; \ 45 (pc) + (_fixup)->fixup.bits.nextinsn; \ 52 (a)->fixup.unit = (b)->fixup.unit; \ 53 (b)->fixup [all...] |
/kernel/linux/linux-5.10/arch/x86/mm/ |
H A D | extable.c | 19 return (unsigned long)&x->fixup + x->fixup; in ex_fixup_addr() 27 __visible bool ex_handler_default(const struct exception_table_entry *fixup, in ex_handler_default() argument 32 regs->ip = ex_fixup_addr(fixup); in ex_handler_default() 37 __visible bool ex_handler_fault(const struct exception_table_entry *fixup, in ex_handler_fault() argument 42 regs->ip = ex_fixup_addr(fixup); in ex_handler_fault() 58 __visible bool ex_handler_fprestore(const struct exception_table_entry *fixup, in ex_handler_fprestore() argument 63 regs->ip = ex_fixup_addr(fixup); in ex_handler_fprestore() 73 __visible bool ex_handler_uaccess(const struct exception_table_entry *fixup, in ex_handler_uaccess() argument 79 regs->ip = ex_fixup_addr(fixup); in ex_handler_uaccess() 84 ex_handler_copy(const struct exception_table_entry *fixup, struct pt_regs *regs, int trapnr, unsigned long error_code, unsigned long fault_addr) ex_handler_copy() argument 96 ex_handler_rdmsr_unsafe(const struct exception_table_entry *fixup, struct pt_regs *regs, int trapnr, unsigned long error_code, unsigned long fault_addr) ex_handler_rdmsr_unsafe() argument 113 ex_handler_wrmsr_unsafe(const struct exception_table_entry *fixup, struct pt_regs *regs, int trapnr, unsigned long error_code, unsigned long fault_addr) ex_handler_wrmsr_unsafe() argument 129 ex_handler_clear_fs(const struct exception_table_entry *fixup, struct pt_regs *regs, int trapnr, unsigned long error_code, unsigned long fault_addr) ex_handler_clear_fs() argument [all...] |
/kernel/linux/linux-5.10/arch/arm64/mm/ |
H A D | extable.c | 11 const struct exception_table_entry *fixup; in fixup_exception() local 13 fixup = search_exception_tables(instruction_pointer(regs)); in fixup_exception() 14 if (!fixup) in fixup_exception() 18 return arm64_bpf_fixup_exception(fixup, regs); in fixup_exception() 20 regs->pc = (unsigned long)&fixup->fixup + fixup->fixup; in fixup_exception()
|
/kernel/linux/linux-5.10/arch/arm/mm/ |
H A D | extable.c | 10 const struct exception_table_entry *fixup; in fixup_exception() local 12 fixup = search_exception_tables(instruction_pointer(regs)); in fixup_exception() 13 if (fixup) { in fixup_exception() 14 regs->ARM_pc = (unsigned long)&fixup->fixup + fixup->fixup; in fixup_exception() 16 /* Clear the IT state to avoid nasty surprises in the fixup */ in fixup_exception() 21 return fixup != NULL; in fixup_exception()
|
/kernel/linux/linux-5.10/arch/sparc/mm/ |
H A D | extable.c | 15 /* Caller knows they are in a range if ret->fixup == 0 */ 25 * word 2: fixup code address in search_extable() 31 * word 4: fixup code address in search_extable() 42 if (base[i].fixup == 0) { in search_extable() 49 if (base[i].fixup == -1) in search_extable() 58 if (base[i].fixup) in search_extable() 78 range = m->extable[i].fixup == 0; in trim_init_extable() 81 m->extable[i].fixup = -1; in trim_init_extable() 83 m->extable[i+1].fixup = -1; in trim_init_extable() 91 /* Special extable search, which handles ranges. Returns fixup */ [all...] |
/kernel/linux/linux-6.6/arch/x86/mm/ |
H A D | extable.c | 29 return (unsigned long)&x->fixup + x->fixup; in ex_fixup_addr() 53 * of size 'long', and the exception fixup must always point to right 97 static bool ex_handler_fault(const struct exception_table_entry *fixup, in ex_handler_fault() argument 101 return ex_handler_default(fixup, regs); in ex_handler_fault() 104 static bool ex_handler_sgx(const struct exception_table_entry *fixup, in ex_handler_sgx() argument 108 return ex_handler_default(fixup, regs); in ex_handler_sgx() 121 static bool ex_handler_fprestore(const struct exception_table_entry *fixup, in ex_handler_fprestore() argument 124 regs->ip = ex_fixup_addr(fixup); in ex_handler_fprestore() 157 static bool ex_handler_uaccess(const struct exception_table_entry *fixup, in ex_handler_uaccess() argument 166 ex_handler_copy(const struct exception_table_entry *fixup, struct pt_regs *regs, int trapnr) ex_handler_copy() argument 173 ex_handler_msr(const struct exception_table_entry *fixup, struct pt_regs *regs, bool wrmsr, bool safe, int reg) ex_handler_msr() argument 201 ex_handler_clear_fs(const struct exception_table_entry *fixup, struct pt_regs *regs) ex_handler_clear_fs() argument 210 ex_handler_imm_reg(const struct exception_table_entry *fixup, struct pt_regs *regs, int reg, int imm) ex_handler_imm_reg() argument 217 ex_handler_ucopy_len(const struct exception_table_entry *fixup, struct pt_regs *regs, int trapnr, unsigned long fault_address, int reg, int imm) ex_handler_ucopy_len() argument [all...] |
/kernel/linux/linux-5.10/arch/x86/um/ |
H A D | fault.c | 12 unsigned long fixup; member 20 const struct exception_table_entry *fixup; in arch_fixup() local 22 fixup = search_exception_tables(address); in arch_fixup() 23 if (fixup) { in arch_fixup() 24 UPT_IP(regs) = fixup->fixup; in arch_fixup()
|
/kernel/linux/linux-5.10/arch/nds32/mm/ |
H A D | extable.c | 9 const struct exception_table_entry *fixup; in fixup_exception() local 11 fixup = search_exception_tables(instruction_pointer(regs)); in fixup_exception() 12 if (fixup) in fixup_exception() 13 regs->ipc = fixup->fixup; in fixup_exception() 15 return fixup != NULL; in fixup_exception()
|
/kernel/linux/linux-6.6/arch/arm/mm/ |
H A D | extable.c | 10 const struct exception_table_entry *fixup; in fixup_exception() local 12 fixup = search_exception_tables(instruction_pointer(regs)); in fixup_exception() 13 if (fixup) { in fixup_exception() 14 regs->ARM_pc = fixup->fixup; in fixup_exception() 16 /* Clear the IT state to avoid nasty surprises in the fixup */ in fixup_exception() 21 return fixup != NULL; in fixup_exception()
|
/kernel/linux/linux-6.6/arch/x86/um/ |
H A D | fault.c | 12 unsigned long fixup; member 20 const struct exception_table_entry *fixup; in arch_fixup() local 22 fixup = search_exception_tables(address); in arch_fixup() 23 if (fixup) { in arch_fixup() 24 UPT_IP(regs) = fixup->fixup; in arch_fixup()
|
/kernel/linux/linux-6.6/arch/s390/include/asm/ |
H A D | extable.h | 19 * All the routines below use bits of fixup code that are out of line 27 int insn, fixup; member 38 return (unsigned long)&x->fixup + x->fixup; in extable_fixup() 48 a->fixup = b->fixup + delta; in swap_ex_entry_fixup() 49 b->fixup = tmp.fixup - delta; in swap_ex_entry_fixup()
|
/kernel/linux/linux-5.10/arch/s390/include/asm/ |
H A D | extable.h | 19 * All the routines below use bits of fixup code that are out of line 27 int insn, fixup; member 38 return (unsigned long)&x->fixup + x->fixup; in extable_fixup() 70 a->fixup = b->fixup + delta; in swap_ex_entry_fixup() 71 b->fixup = tmp.fixup - delta; in swap_ex_entry_fixup()
|
/kernel/linux/linux-5.10/arch/mips/lib/ |
H A D | memset.S | 58 .macro f_fill64 dst, offset, val, fixup, mode 59 EX(LONG_S, \val, (\offset + 0 * STORSIZE)(\dst), \fixup) 60 EX(LONG_S, \val, (\offset + 1 * STORSIZE)(\dst), \fixup) 61 EX(LONG_S, \val, (\offset + 2 * STORSIZE)(\dst), \fixup) 62 EX(LONG_S, \val, (\offset + 3 * STORSIZE)(\dst), \fixup) 64 EX(LONG_S, \val, (\offset + 4 * STORSIZE)(\dst), \fixup) 65 EX(LONG_S, \val, (\offset + 5 * STORSIZE)(\dst), \fixup) 66 EX(LONG_S, \val, (\offset + 6 * STORSIZE)(\dst), \fixup) 67 EX(LONG_S, \val, (\offset + 7 * STORSIZE)(\dst), \fixup) 70 EX(LONG_S, \val, (\offset + 8 * STORSIZE)(\dst), \fixup) [all...] |
/kernel/linux/linux-6.6/arch/mips/lib/ |
H A D | memset.S | 58 .macro f_fill64 dst, offset, val, fixup, mode 59 EX(LONG_S, \val, (\offset + 0 * STORSIZE)(\dst), \fixup) 60 EX(LONG_S, \val, (\offset + 1 * STORSIZE)(\dst), \fixup) 61 EX(LONG_S, \val, (\offset + 2 * STORSIZE)(\dst), \fixup) 62 EX(LONG_S, \val, (\offset + 3 * STORSIZE)(\dst), \fixup) 64 EX(LONG_S, \val, (\offset + 4 * STORSIZE)(\dst), \fixup) 65 EX(LONG_S, \val, (\offset + 5 * STORSIZE)(\dst), \fixup) 66 EX(LONG_S, \val, (\offset + 6 * STORSIZE)(\dst), \fixup) 67 EX(LONG_S, \val, (\offset + 7 * STORSIZE)(\dst), \fixup) 70 EX(LONG_S, \val, (\offset + 8 * STORSIZE)(\dst), \fixup) [all...] |
/kernel/linux/linux-5.10/arch/nios2/mm/ |
H A D | extable.c | 16 const struct exception_table_entry *fixup; in fixup_exception() local 18 fixup = search_exception_tables(regs->ea); in fixup_exception() 19 if (fixup) { in fixup_exception() 20 regs->ea = fixup->fixup; in fixup_exception()
|
/kernel/linux/linux-6.6/arch/nios2/mm/ |
H A D | extable.c | 16 const struct exception_table_entry *fixup; in fixup_exception() local 18 fixup = search_exception_tables(regs->ea); in fixup_exception() 19 if (fixup) { in fixup_exception() 20 regs->ea = fixup->fixup; in fixup_exception()
|