Jelajahi Sumber

[PATCH] kprobes/ia64: refuse inserting kprobe on slot 1

Without the ability to atomically write 16 bytes, we can not update the
middle slot of a bundle, slot 1, unless we stop the machine first.  This
patch will ensure the ability to robustly insert and remove a kprobe by
refusing to insert a kprobe on slot 1 until a mechanism is in place to
safely handle this case.

Signed-off-by: Rusty Lynch <rusty.lynch@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Rusty Lynch 20 tahun lalu
induk
melakukan
a528e21c23
1 mengubah file dengan 7 tambahan dan 0 penghapusan
  1. 7 0
      arch/ia64/kernel/kprobes.c

+ 7 - 0
arch/ia64/kernel/kprobes.c

@@ -270,6 +270,13 @@ static int valid_kprobe_addr(int template, int slot, unsigned long addr)
 				addr);
 		return -EINVAL;
 	}
+
+	if (slot == 1 && bundle_encoding[template][1] != L) {
+		printk(KERN_WARNING "Inserting kprobes on slot #1 "
+		       "is not supported\n");
+		return -EINVAL;
+	}
+
 	return 0;
 }