|
@@ -299,8 +299,8 @@ static int verify_opcode(struct page *page, unsigned long vaddr, uprobe_opcode_t
|
|
|
* Called with mm->mmap_sem held for write.
|
|
|
* Return 0 (success) or a negative errno.
|
|
|
*/
|
|
|
-int uprobe_write_opcode(struct mm_struct *mm, unsigned long vaddr,
|
|
|
- uprobe_opcode_t opcode)
|
|
|
+int uprobe_write_opcode(struct arch_uprobe *auprobe, struct mm_struct *mm,
|
|
|
+ unsigned long vaddr, uprobe_opcode_t opcode)
|
|
|
{
|
|
|
struct page *old_page, *new_page;
|
|
|
struct vm_area_struct *vma;
|
|
@@ -351,7 +351,7 @@ put_old:
|
|
|
*/
|
|
|
int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr)
|
|
|
{
|
|
|
- return uprobe_write_opcode(mm, vaddr, UPROBE_SWBP_INSN);
|
|
|
+ return uprobe_write_opcode(auprobe, mm, vaddr, UPROBE_SWBP_INSN);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -366,7 +366,8 @@ int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned
|
|
|
int __weak
|
|
|
set_orig_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr)
|
|
|
{
|
|
|
- return uprobe_write_opcode(mm, vaddr, *(uprobe_opcode_t *)&auprobe->insn);
|
|
|
+ return uprobe_write_opcode(auprobe, mm, vaddr,
|
|
|
+ *(uprobe_opcode_t *)&auprobe->insn);
|
|
|
}
|
|
|
|
|
|
static struct uprobe *get_uprobe(struct uprobe *uprobe)
|