Commit a491c02c authored by Keke Ming's avatar Keke Ming Committed by Peter Zijlstra
Browse files

uprobes: use kmap_local_page() for temporary page mappings



Replace deprecated kmap_atomic() with kmap_local_page().

Signed-off-by: default avatarKeke Ming <ming.jvle@gmail.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
Link: https://patch.msgid.link/20260103084243.195125-6-ming.jvle@gmail.com
parent 1752a1ad
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -179,16 +179,16 @@ bool __weak is_trap_insn(uprobe_opcode_t *insn)

void uprobe_copy_from_page(struct page *page, unsigned long vaddr, void *dst, int len)
{
	void *kaddr = kmap_atomic(page);
	void *kaddr = kmap_local_page(page);
	memcpy(dst, kaddr + (vaddr & ~PAGE_MASK), len);
	kunmap_atomic(kaddr);
	kunmap_local(kaddr);
}

static void copy_to_page(struct page *page, unsigned long vaddr, const void *src, int len)
{
	void *kaddr = kmap_atomic(page);
	void *kaddr = kmap_local_page(page);
	memcpy(kaddr + (vaddr & ~PAGE_MASK), src, len);
	kunmap_atomic(kaddr);
	kunmap_local(kaddr);
}

static int verify_opcode(struct page *page, unsigned long vaddr, uprobe_opcode_t *insn,
@@ -323,7 +323,7 @@ __update_ref_ctr(struct mm_struct *mm, unsigned long vaddr, short d)
		return ret == 0 ? -EBUSY : ret;
	}

	kaddr = kmap_atomic(page);
	kaddr = kmap_local_page(page);
	ptr = kaddr + (vaddr & ~PAGE_MASK);

	if (unlikely(*ptr + d < 0)) {
@@ -336,7 +336,7 @@ __update_ref_ctr(struct mm_struct *mm, unsigned long vaddr, short d)
	*ptr += d;
	ret = 0;
out:
	kunmap_atomic(kaddr);
	kunmap_local(kaddr);
	put_page(page);
	return ret;
}