MCOUNT_INSN_SIZE
MCOUNT_INSN_SIZE))
flush_icache_range(hook_pos, hook_pos + MCOUNT_INSN_SIZE);
p = get_kprobe((kprobe_opcode_t *)(ip - MCOUNT_INSN_SIZE));
ip -= MCOUNT_INSN_SIZE;
(unsigned long)p->addr + MCOUNT_INSN_SIZE);
instruction_pointer_set(regs, (unsigned long)p->addr + MCOUNT_INSN_SIZE);
self_ra -= (MCOUNT_INSN_SIZE * insns);
regs_add_return_ip(regs, -MCOUNT_INSN_SIZE);
regs_add_return_ip(regs, MCOUNT_INSN_SIZE);
ip = ftrace_get_ool_stub(rec) + MCOUNT_INSN_SIZE; /* second instruction in stub */
!is_offset_in_branch_range((long)(rec->ip + MCOUNT_INSN_SIZE) -
inst = ftrace_create_branch_inst(ftrace_get_ool_stub(rec) + MCOUNT_INSN_SIZE,
if (!ret && create_branch(&inst, &ool_stub->insn[3], rec->ip + MCOUNT_INSN_SIZE, 0))
return patch_ulong((void *)(rec->ip - MCOUNT_INSN_SIZE - sizeof(unsigned long)),
ip = ftrace_get_ool_stub(rec) + MCOUNT_INSN_SIZE; /* second instruction in stub */
ip = ftrace_get_ool_stub(rec) + MCOUNT_INSN_SIZE;
addr += MCOUNT_INSN_SIZE;
addr += MCOUNT_INSN_SIZE;
ret = patch_insn_write((void *)pc, nops, 2 * MCOUNT_INSN_SIZE);
if (copy_from_kernel_nofault(replaced, (void *)source, 2 * MCOUNT_INSN_SIZE))
instruction_pointer_set(regs, ip + MCOUNT_INSN_SIZE);
MCOUNT_INSN_SIZE);
unsigned char replaced[MCOUNT_INSN_SIZE];
if (copy_from_kernel_nofault(replaced, (void *)ip, MCOUNT_INSN_SIZE))
if (memcmp(replaced, old_code, MCOUNT_INSN_SIZE) != 0)
flush_icache_range(ip, ip + MCOUNT_INSN_SIZE);
unsigned char old[MCOUNT_INSN_SIZE], *new;
memcpy(old, (unsigned char *)ip, MCOUNT_INSN_SIZE);
unsigned char code[MCOUNT_INSN_SIZE];
if (copy_from_kernel_nofault(code, (void *)ip, MCOUNT_INSN_SIZE))
static unsigned char ftrace_replaced_code[MCOUNT_INSN_SIZE];
__raw_writel(ip + MCOUNT_INSN_SIZE, ftrace_nop);
if (memcmp(cur_code, old_code, MCOUNT_INSN_SIZE) != 0) {
smp_text_poke_batch_add((void *)ip, new_code, MCOUNT_INSN_SIZE, NULL);
text_poke_early((void *)ip, new_code, MCOUNT_INSN_SIZE);
smp_text_poke_single((void *)ip, new, MCOUNT_INSN_SIZE, NULL);
smp_text_poke_single((void *)ip, new, MCOUNT_INSN_SIZE, NULL);
smp_text_poke_batch_add((void *)rec->ip, new, MCOUNT_INSN_SIZE, NULL);
smp_text_poke_single((void *)ip, new, MCOUNT_INSN_SIZE, NULL);
smp_text_poke_single((void *)ip, new, MCOUNT_INSN_SIZE, NULL);
char cur_code[MCOUNT_INSN_SIZE];
if (copy_from_kernel_nofault(cur_code, (void *)ip, MCOUNT_INSN_SIZE)) {
instruction_pointer_set(regs, ip + MCOUNT_INSN_SIZE);
#ifndef MCOUNT_INSN_SIZE
if (key->ip >= rec->ip + MCOUNT_INSN_SIZE)
start >= (pg->records[pg->index - 1].ip + MCOUNT_INSN_SIZE))
char ins[MCOUNT_INSN_SIZE];
if (copy_from_kernel_nofault(ins, p, MCOUNT_INSN_SIZE)) {
pr_cont("%*phC", MCOUNT_INSN_SIZE, ins);
start >= (pg->records[pg->index - 1].ip + MCOUNT_INSN_SIZE))
#ifndef MCOUNT_INSN_SIZE
ip += MCOUNT_INSN_SIZE;