Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a2bb6fc authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Ingo Molnar
Browse files

kprobes: No need to unlock kprobe_insn_mutex



Remove needless kprobe_insn_mutex unlocking during safety check
in garbage collection, because if someone releases a dirty slot
during safety check (which ensures other cpus doesn't execute
all dirty slots), the safety check must be fail. So, we need to
hold the mutex while checking safety.

Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Jim Keniston <jkenisto@us.ibm.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
LKML-Reference: <20090630210809.17851.28781.stgit@localhost.localdomain>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 238a24f6
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -237,13 +237,9 @@ static int __kprobes collect_garbage_slots(void)
{
{
	struct kprobe_insn_page *kip;
	struct kprobe_insn_page *kip;
	struct hlist_node *pos, *next;
	struct hlist_node *pos, *next;
	int safety;


	/* Ensure no-one is preepmted on the garbages */
	/* Ensure no-one is preepmted on the garbages */
	mutex_unlock(&kprobe_insn_mutex);
	if (check_safety())
	safety = check_safety();
	mutex_lock(&kprobe_insn_mutex);
	if (safety != 0)
		return -EAGAIN;
		return -EAGAIN;


	hlist_for_each_entry_safe(kip, pos, next, &kprobe_insn_pages, hlist) {
	hlist_for_each_entry_safe(kip, pos, next, &kprobe_insn_pages, hlist) {