[IMPROVE] create slot_manager
[kernel/swap-modules.git] / uprobe / arch / asm-arm / swap_uprobes.c
index cf2c8b6..8ae763b 100644 (file)
@@ -553,7 +553,7 @@ int arch_prepare_uprobe(struct uprobe *up, struct hlist_head *page_list, int ato
        }
 
        p->opcode = insn[0];
-       p->ainsn.insn_arm = get_insn_slot(task, page_list, atomic);
+       p->ainsn.insn_arm = alloc_insn_slot(up->sm);
        if (!p->ainsn.insn_arm) {
                printk("Error in %s at %d: kprobe slot allocation error (arm)\n", __FILE__, __LINE__);
                return -ENOMEM;
@@ -561,11 +561,11 @@ int arch_prepare_uprobe(struct uprobe *up, struct hlist_head *page_list, int ato
 
        ret = arch_copy_trampoline_arm_uprobe(p, task, 1);
        if (ret) {
-               free_insn_slot(page_list, task, p->ainsn.insn_arm);
+               free_insn_slot(up->sm, p->ainsn.insn_arm);
                return -EFAULT;
        }
 
-       p->ainsn.insn_thumb = get_insn_slot(task, page_list, atomic);
+       p->ainsn.insn_thumb = alloc_insn_slot(up->sm);
        if (!p->ainsn.insn_thumb) {
                printk("Error in %s at %d: kprobe slot allocation error (thumb)\n", __FILE__, __LINE__);
                return -ENOMEM;
@@ -573,8 +573,8 @@ int arch_prepare_uprobe(struct uprobe *up, struct hlist_head *page_list, int ato
 
        ret = arch_copy_trampoline_thumb_uprobe(p, task, 1);
        if (ret) {
-               free_insn_slot(page_list, task, p->ainsn.insn_arm);
-               free_insn_slot(page_list, task, p->ainsn.insn_thumb);
+               free_insn_slot(up->sm, p->ainsn.insn_arm);
+               free_insn_slot(up->sm, p->ainsn.insn_thumb);
                return -EFAULT;
        }
 
@@ -585,8 +585,8 @@ int arch_prepare_uprobe(struct uprobe *up, struct hlist_head *page_list, int ato
                        panic("Failed to write memory %p!\n", p->addr);
                }
 
-               free_insn_slot(page_list, task, p->ainsn.insn_arm);
-               free_insn_slot(page_list, task, p->ainsn.insn_thumb);
+               free_insn_slot(up->sm, p->ainsn.insn_arm);
+               free_insn_slot(up->sm, p->ainsn.insn_thumb);
 
                return -EFAULT;
        }