Commit fa1796a8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull tracing fixes from Steven Rostedt:

 - Check for NULL in kretprobe_dispatcher()

   NULL can now be passed in, make sure it can handle it

 - Clean up unneeded #endif #ifdef of the same preprocessor
   check in the middle of the block.

 - Comment clean up

 - Remove unneeded initialization of the "ret" variable in
   __trace_uprobe_create()

* tag 'trace-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
  tracing/uprobes: Remove unwanted initialization in __trace_uprobe_create()
  tracefs: Fix syntax errors in comments
  tracing: Simplify conditional compilation code in tracing_set_tracer()
  tracing/kprobes: Check whether get_kretprobe() returns NULL in kretprobe_dispatcher()
parents 16e4bce6 12c3e0c9
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -553,7 +553,7 @@ struct dentry *tracefs_create_dir(const char *name, struct dentry *parent)
 *
 *
 * Only one instances directory is allowed.
 * Only one instances directory is allowed.
 *
 *
 * The instances directory is special as it allows for mkdir and rmdir to
 * The instances directory is special as it allows for mkdir and rmdir
 * to be done by userspace. When a mkdir or rmdir is performed, the inode
 * to be done by userspace. When a mkdir or rmdir is performed, the inode
 * locks are released and the methods passed in (@mkdir and @rmdir) are
 * locks are released and the methods passed in (@mkdir and @rmdir) are
 * called without locks and with the name of the directory being created
 * called without locks and with the name of the directory being created
+0 −2
Original line number Original line Diff line number Diff line
@@ -6424,9 +6424,7 @@ int tracing_set_tracer(struct trace_array *tr, const char *buf)
		synchronize_rcu();
		synchronize_rcu();
		free_snapshot(tr);
		free_snapshot(tr);
	}
	}
#endif


#ifdef CONFIG_TRACER_MAX_TRACE
	if (t->use_max_tr && !had_max_tr) {
	if (t->use_max_tr && !had_max_tr) {
		ret = tracing_alloc_snapshot_instance(tr);
		ret = tracing_alloc_snapshot_instance(tr);
		if (ret < 0)
		if (ret < 0)
+10 −1
Original line number Original line Diff line number Diff line
@@ -1718,8 +1718,17 @@ static int
kretprobe_dispatcher(struct kretprobe_instance *ri, struct pt_regs *regs)
kretprobe_dispatcher(struct kretprobe_instance *ri, struct pt_regs *regs)
{
{
	struct kretprobe *rp = get_kretprobe(ri);
	struct kretprobe *rp = get_kretprobe(ri);
	struct trace_kprobe *tk = container_of(rp, struct trace_kprobe, rp);
	struct trace_kprobe *tk;

	/*
	 * There is a small chance that get_kretprobe(ri) returns NULL when
	 * the kretprobe is unregister on another CPU between kretprobe's
	 * trampoline_handler and this function.
	 */
	if (unlikely(!rp))
		return 0;


	tk = container_of(rp, struct trace_kprobe, rp);
	raw_cpu_inc(*tk->nhit);
	raw_cpu_inc(*tk->nhit);


	if (trace_probe_test_flag(&tk->tp, TP_FLAG_TRACE))
	if (trace_probe_test_flag(&tk->tp, TP_FLAG_TRACE))
+0 −1
Original line number Original line Diff line number Diff line
@@ -546,7 +546,6 @@ static int __trace_uprobe_create(int argc, const char **argv)
	bool is_return = false;
	bool is_return = false;
	int i, ret;
	int i, ret;


	ret = 0;
	ref_ctr_offset = 0;
	ref_ctr_offset = 0;


	switch (argv[0][0]) {
	switch (argv[0][0]) {