text_poke_addr
static int map_patch_area(void *addr, unsigned long text_poke_addr)
return map_kernel_page(text_poke_addr, (pfn << PAGE_SHIFT), PAGE_KERNEL);
unsigned long text_poke_addr;
text_poke_addr = __this_cpu_read(cpu_patching_context.addr);
patch_addr = (u32 *)(text_poke_addr + offset_in_page(addr));
pte = get_locked_pte(patching_mm, text_poke_addr, &ptl);
__set_pte_at(patching_mm, text_poke_addr, pte, pfn_pte(pfn, PAGE_KERNEL), 0);
pte_clear(patching_mm, text_poke_addr, pte);
local_flush_tlb_page_psize(patching_mm, text_poke_addr, mmu_virtual_psize);
unsigned long text_poke_addr;
text_poke_addr = (unsigned long)__this_cpu_read(cpu_patching_context.addr) & PAGE_MASK;
patch_addr = (u32 *)(text_poke_addr + offset_in_page(addr));
__set_pte_at(&init_mm, text_poke_addr, pte, pfn_pte(pfn, PAGE_KERNEL), 0);
pte_clear(&init_mm, text_poke_addr, pte);
flush_tlb_kernel_range(text_poke_addr, text_poke_addr + PAGE_SIZE);
unsigned long text_poke_addr;
text_poke_addr = __this_cpu_read(cpu_patching_context.addr);
patch_addr = (u32 *)(text_poke_addr + offset_in_page(addr));
pte = get_locked_pte(patching_mm, text_poke_addr, &ptl);
__set_pte_at(patching_mm, text_poke_addr, pte, pfn_pte(pfn, PAGE_KERNEL), 0);
pte_clear(patching_mm, text_poke_addr, pte);
local_flush_tlb_page_psize(patching_mm, text_poke_addr, mmu_virtual_psize);
unsigned long text_poke_addr;
text_poke_addr = (unsigned long)__this_cpu_read(cpu_patching_context.addr) & PAGE_MASK;
patch_addr = (u32 *)(text_poke_addr + offset_in_page(addr));
__set_pte_at(&init_mm, text_poke_addr, pte, pfn_pte(pfn, PAGE_KERNEL), 0);
pte_clear(&init_mm, text_poke_addr, pte);
flush_tlb_kernel_range(text_poke_addr, text_poke_addr + PAGE_SIZE);
static int map_patch_area(void *addr, unsigned long text_poke_addr);
if (tpl_a < text_poke_addr(tpl_b))
if (tpl_a > text_poke_addr(tpl_b))
if (text_poke_addr(tpl) != ip)
text_poke_array.vec[i].old = *(u8 *)text_poke_addr(&text_poke_array.vec[i]);
text_poke(text_poke_addr(&text_poke_array.vec[i]), &int3, INT3_INSN_SIZE);
text_poke_addr(&text_poke_array.vec[i]) + INT3_INSN_SIZE,
text_poke(text_poke_addr(&text_poke_array.vec[i]) + INT3_INSN_SIZE,
perf_event_text_poke(text_poke_addr(&text_poke_array.vec[i]), old, len, new, len);
text_poke(text_poke_addr(&text_poke_array.vec[i]), &byte, INT3_INSN_SIZE);
if (text_poke_addr(text_poke_array.vec + text_poke_array.nr_entries-1) > addr)