forked from Minki/linux
While cleaning out my INBOX, I found a few patches that were lost
in the noise. These are minor bug fixes and clean ups. Those include: - Avoiding a string overflow - Code that didn't match the comment (but should) - A small code optimization (use of a conditional) - Quieting printf warnings - Nuking unused code - Fixing function graph interrupt annotation -----BEGIN PGP SIGNATURE----- iIoEABYIADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCWz7ARhQccm9zdGVkdEBn b29kbWlzLm9yZwAKCRAp5XQQmuv6qmMqAQDTS7uvFLRR603WXyOazX6Y7FeiYFWp MUUZjnbG9u0bawEAulW53AM0OL3EAAaZKtPi8VtsT+uktR1GIynXrp+yoww= =yQDv -----END PGP SIGNATURE----- Merge tag 'trace-v4.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes and cleanups from Steven Rostedt: "While cleaning out my INBOX, I found a few patches that were lost in the noise. These are minor bug fixes and clean ups. Those include: - avoid a string overflow - code that didn't match the comment (but should) - a small code optimization (use of a conditional) - quiet printf warnings - nuke unused code - fix function graph interrupt annotation" * tag 'trace-v4.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Fix missing return symbol in function_graph output ftrace: Nuke clear_ftrace_function tracing: Use __printf markup to silence compiler tracing: Optimize trace_buffer_iter() logic tracing: Make create_filter() code match the comments tracing: Avoid string overflow
This commit is contained in:
commit
97f4e14229
@ -223,7 +223,6 @@ extern enum ftrace_tracing_type_t ftrace_tracing_type;
|
||||
*/
|
||||
int register_ftrace_function(struct ftrace_ops *ops);
|
||||
int unregister_ftrace_function(struct ftrace_ops *ops);
|
||||
void clear_ftrace_function(void);
|
||||
|
||||
extern void ftrace_stub(unsigned long a0, unsigned long a1,
|
||||
struct ftrace_ops *op, struct pt_regs *regs);
|
||||
@ -239,7 +238,6 @@ static inline int ftrace_nr_registered_ops(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void clear_ftrace_function(void) { }
|
||||
static inline void ftrace_kill(void) { }
|
||||
static inline void ftrace_free_init_mem(void) { }
|
||||
static inline void ftrace_free_mem(struct module *mod, void *start, void *end) { }
|
||||
|
@ -192,17 +192,6 @@ static void ftrace_pid_func(unsigned long ip, unsigned long parent_ip,
|
||||
op->saved_func(ip, parent_ip, op, regs);
|
||||
}
|
||||
|
||||
/**
|
||||
* clear_ftrace_function - reset the ftrace function
|
||||
*
|
||||
* This NULLs the ftrace function and in essence stops
|
||||
* tracing. There may be lag
|
||||
*/
|
||||
void clear_ftrace_function(void)
|
||||
{
|
||||
ftrace_trace_function = ftrace_stub;
|
||||
}
|
||||
|
||||
static void ftrace_sync(struct work_struct *work)
|
||||
{
|
||||
/*
|
||||
@ -6689,7 +6678,7 @@ void ftrace_kill(void)
|
||||
{
|
||||
ftrace_disabled = 1;
|
||||
ftrace_enabled = 0;
|
||||
clear_ftrace_function();
|
||||
ftrace_trace_function = ftrace_stub;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2953,6 +2953,7 @@ out_nobuffer:
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(trace_vbprintk);
|
||||
|
||||
__printf(3, 0)
|
||||
static int
|
||||
__trace_array_vprintk(struct ring_buffer *buffer,
|
||||
unsigned long ip, const char *fmt, va_list args)
|
||||
@ -3007,12 +3008,14 @@ out_nobuffer:
|
||||
return len;
|
||||
}
|
||||
|
||||
__printf(3, 0)
|
||||
int trace_array_vprintk(struct trace_array *tr,
|
||||
unsigned long ip, const char *fmt, va_list args)
|
||||
{
|
||||
return __trace_array_vprintk(tr->trace_buffer.buffer, ip, fmt, args);
|
||||
}
|
||||
|
||||
__printf(3, 0)
|
||||
int trace_array_printk(struct trace_array *tr,
|
||||
unsigned long ip, const char *fmt, ...)
|
||||
{
|
||||
@ -3028,6 +3031,7 @@ int trace_array_printk(struct trace_array *tr,
|
||||
return ret;
|
||||
}
|
||||
|
||||
__printf(3, 4)
|
||||
int trace_array_printk_buf(struct ring_buffer *buffer,
|
||||
unsigned long ip, const char *fmt, ...)
|
||||
{
|
||||
@ -3043,6 +3047,7 @@ int trace_array_printk_buf(struct ring_buffer *buffer,
|
||||
return ret;
|
||||
}
|
||||
|
||||
__printf(2, 0)
|
||||
int trace_vprintk(unsigned long ip, const char *fmt, va_list args)
|
||||
{
|
||||
return trace_array_vprintk(&global_trace, ip, fmt, args);
|
||||
|
@ -583,9 +583,7 @@ static __always_inline void trace_clear_recursion(int bit)
|
||||
static inline struct ring_buffer_iter *
|
||||
trace_buffer_iter(struct trace_iterator *iter, int cpu)
|
||||
{
|
||||
if (iter->buffer_iter && iter->buffer_iter[cpu])
|
||||
return iter->buffer_iter[cpu];
|
||||
return NULL;
|
||||
return iter->buffer_iter ? iter->buffer_iter[cpu] : NULL;
|
||||
}
|
||||
|
||||
int tracer_init(struct tracer *t, struct trace_array *tr);
|
||||
|
@ -1701,6 +1701,7 @@ static void create_filter_finish(struct filter_parse_error *pe)
|
||||
* @filter_str: filter string
|
||||
* @set_str: remember @filter_str and enable detailed error in filter
|
||||
* @filterp: out param for created filter (always updated on return)
|
||||
* Must be a pointer that references a NULL pointer.
|
||||
*
|
||||
* Creates a filter for @call with @filter_str. If @set_str is %true,
|
||||
* @filter_str is copied and recorded in the new filter.
|
||||
@ -1718,6 +1719,10 @@ static int create_filter(struct trace_event_call *call,
|
||||
struct filter_parse_error *pe = NULL;
|
||||
int err;
|
||||
|
||||
/* filterp must point to NULL */
|
||||
if (WARN_ON(*filterp))
|
||||
*filterp = NULL;
|
||||
|
||||
err = create_filter_start(filter_string, set_str, &pe, filterp);
|
||||
if (err)
|
||||
return err;
|
||||
|
@ -393,7 +393,7 @@ static void hist_err_event(char *str, char *system, char *event, char *var)
|
||||
else if (system)
|
||||
snprintf(err, MAX_FILTER_STR_VAL, "%s.%s", system, event);
|
||||
else
|
||||
strncpy(err, var, MAX_FILTER_STR_VAL);
|
||||
strscpy(err, var, MAX_FILTER_STR_VAL);
|
||||
|
||||
hist_err(str, err);
|
||||
}
|
||||
|
@ -831,6 +831,7 @@ print_graph_entry_leaf(struct trace_iterator *iter,
|
||||
struct ftrace_graph_ret *graph_ret;
|
||||
struct ftrace_graph_ent *call;
|
||||
unsigned long long duration;
|
||||
int cpu = iter->cpu;
|
||||
int i;
|
||||
|
||||
graph_ret = &ret_entry->ret;
|
||||
@ -839,7 +840,6 @@ print_graph_entry_leaf(struct trace_iterator *iter,
|
||||
|
||||
if (data) {
|
||||
struct fgraph_cpu_data *cpu_data;
|
||||
int cpu = iter->cpu;
|
||||
|
||||
cpu_data = per_cpu_ptr(data->cpu_data, cpu);
|
||||
|
||||
@ -869,6 +869,9 @@ print_graph_entry_leaf(struct trace_iterator *iter,
|
||||
|
||||
trace_seq_printf(s, "%ps();\n", (void *)call->func);
|
||||
|
||||
print_graph_irq(iter, graph_ret->func, TRACE_GRAPH_RET,
|
||||
cpu, iter->ent->pid, flags);
|
||||
|
||||
return trace_handle_return(s);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user