[S390] kprobes: instruction swap
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 5 Jan 2011 11:47:18 +0000 (12:47 +0100)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Wed, 5 Jan 2011 11:47:23 +0000 (12:47 +0100)
Move the definition of the helper structure ins_replace_args to the
only place where it is used and drop the old member as it is not needed.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/kprobes.h
arch/s390/kernel/kprobes.c

index 15d0dec8dbb4f547fcd3cc1abbc0f6180f2e16ca..e45b3d38d4f8462df085e760d4dcc781cca41c34 100644 (file)
@@ -64,11 +64,6 @@ struct arch_specific_insn {
        int reg;
 };
 
-struct ins_replace_args {
-       kprobe_opcode_t *ptr;
-       kprobe_opcode_t old;
-       kprobe_opcode_t new;
-};
 struct prev_kprobe {
        struct kprobe *kp;
        unsigned long status;
index 91c611f84ff7837365cc836c7cda0f0130105815..1e75ec5235779dad205c7f08e4118e9ee6c4d764 100644 (file)
@@ -157,17 +157,21 @@ void __kprobes get_instruction_type(struct arch_specific_insn *ainsn)
        }
 }
 
+struct ins_replace_args {
+       kprobe_opcode_t *ptr;
+       kprobe_opcode_t opcode;
+};
+
 static int __kprobes swap_instruction(void *aref)
 {
        struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
        unsigned long status = kcb->kprobe_status;
        struct ins_replace_args *args = aref;
-       int rc;
 
        kcb->kprobe_status = KPROBE_SWAP_INST;
-       rc = probe_kernel_write(args->ptr, &args->new, sizeof(args->new));
+       probe_kernel_write(args->ptr, &args->opcode, sizeof(args->opcode));
        kcb->kprobe_status = status;
-       return rc;
+       return 0;
 }
 
 void __kprobes arch_arm_kprobe(struct kprobe *p)
@@ -175,8 +179,7 @@ void __kprobes arch_arm_kprobe(struct kprobe *p)
        struct ins_replace_args args;
 
        args.ptr = p->addr;
-       args.old = p->opcode;
-       args.new = BREAKPOINT_INSTRUCTION;
+       args.opcode = BREAKPOINT_INSTRUCTION;
        stop_machine(swap_instruction, &args, NULL);
 }
 
@@ -185,8 +188,7 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
        struct ins_replace_args args;
 
        args.ptr = p->addr;
-       args.old = BREAKPOINT_INSTRUCTION;
-       args.new = p->opcode;
+       args.opcode = p->opcode;
        stop_machine(swap_instruction, &args, NULL);
 }