Commit 5e5b8b49 authored by Masami Hiramatsu (Google)'s avatar Masami Hiramatsu (Google)
Browse files

kprobes: Remove unneeded goto

Remove unneeded gotos. Since the labels referred by these gotos have
only one reference for each, we can replace those gotos with the
referred code.

Link: https://lore.kernel.org/all/173371211203.480397.13988907319659165160.stgit@devnote2/



Signed-off-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
parent a35fb2bc
Loading
Loading
Loading
Loading
+21 −24
Original line number Diff line number Diff line
@@ -1071,14 +1071,7 @@ static int __arm_kprobe_ftrace(struct kprobe *p, struct ftrace_ops *ops,

	if (*cnt == 0) {
		ret = register_ftrace_function(ops);
		if (WARN(ret < 0, "Failed to register kprobe-ftrace (error %d)\n", ret))
			goto err_ftrace;
	}

	(*cnt)++;
	return ret;

err_ftrace:
		if (WARN(ret < 0, "Failed to register kprobe-ftrace (error %d)\n", ret)) {
			/*
			 * At this point, sinec ops is not registered, we should be sefe from
			 * registering empty filter.
@@ -1086,6 +1079,11 @@ static int __arm_kprobe_ftrace(struct kprobe *p, struct ftrace_ops *ops,
			ftrace_set_filter_ip(ops, (unsigned long)p->addr, 1, 0);
			return ret;
		}
	}

	(*cnt)++;
	return ret;
}

static int arm_kprobe_ftrace(struct kprobe *p)
{
@@ -1428,7 +1426,7 @@ _kprobe_addr(kprobe_opcode_t *addr, const char *symbol_name,
	     unsigned long offset, bool *on_func_entry)
{
	if ((symbol_name && addr) || (!symbol_name && !addr))
		goto invalid;
		return ERR_PTR(-EINVAL);

	if (symbol_name) {
		/*
@@ -1458,11 +1456,10 @@ _kprobe_addr(kprobe_opcode_t *addr, const char *symbol_name,
	 * at the start of the function.
	 */
	addr = arch_adjust_kprobe_addr((unsigned long)addr, offset, on_func_entry);
	if (addr)
		return addr;

invalid:
	if (!addr)
		return ERR_PTR(-EINVAL);

	return addr;
}

static kprobe_opcode_t *kprobe_addr(struct kprobe *p)
@@ -1486,15 +1483,15 @@ static struct kprobe *__get_valid_kprobe(struct kprobe *p)
	if (unlikely(!ap))
		return NULL;

	if (p != ap) {
	if (p == ap)
		return ap;

	list_for_each_entry(list_p, &ap->list, list)
		if (list_p == p)
		/* kprobe p is a valid probe */
				goto valid;
		return NULL;
	}
valid:
			return ap;

	return NULL;
}

/*