mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-19 21:44:08 +00:00
A few clean ups and bug fixes
- Replace open coded "ARRAY_SIZE()" with macro - Updates to uprobes - Bug fix for perf event filter on error path -----BEGIN PGP SIGNATURE----- iIoEABYIADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCWs+2YxQccm9zdGVkdEBn b29kbWlzLm9yZwAKCRAp5XQQmuv6qsRUAP9okqGRR/01bBLqNKiJ2j5YeBc9YlWl R2rC0xbwVBLgJQEAwpE5jxahqKutbgrBDalDeCmXmeTOhSbGRJaBxXqwzwE= =ZAuQ -----END PGP SIGNATURE----- Merge tag 'trace-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: "A few clean ups and bug fixes: - replace open coded "ARRAY_SIZE()" with macro - updates to uprobes - bug fix for perf event filter on error path" * tag 'trace-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Enforce passing in filter=NULL to create_filter() trace_uprobe: Simplify probes_seq_show() trace_uprobe: Use %lx to display offset tracing/uprobe: Add support for overlayfs tracing: Use ARRAY_SIZE() macro instead of open coding it
This commit is contained in:
commit
affb028071
2 changed files with 15 additions and 34 deletions
|
@ -1704,18 +1704,16 @@ static int create_filter(struct trace_event_call *call,
|
||||||
struct event_filter **filterp)
|
struct event_filter **filterp)
|
||||||
{
|
{
|
||||||
struct filter_parse_error *pe = NULL;
|
struct filter_parse_error *pe = NULL;
|
||||||
struct event_filter *filter = NULL;
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = create_filter_start(filter_string, set_str, &pe, &filter);
|
err = create_filter_start(filter_string, set_str, &pe, filterp);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
err = process_preds(call, filter_string, filter, pe);
|
err = process_preds(call, filter_string, *filterp, pe);
|
||||||
if (err && set_str)
|
if (err && set_str)
|
||||||
append_filter_err(pe, filter);
|
append_filter_err(pe, *filterp);
|
||||||
|
|
||||||
*filterp = filter;
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1739,24 +1737,22 @@ static int create_system_filter(struct trace_subsystem_dir *dir,
|
||||||
struct trace_array *tr,
|
struct trace_array *tr,
|
||||||
char *filter_str, struct event_filter **filterp)
|
char *filter_str, struct event_filter **filterp)
|
||||||
{
|
{
|
||||||
struct event_filter *filter = NULL;
|
|
||||||
struct filter_parse_error *pe = NULL;
|
struct filter_parse_error *pe = NULL;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = create_filter_start(filter_str, true, &pe, &filter);
|
err = create_filter_start(filter_str, true, &pe, filterp);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
err = process_system_preds(dir, tr, pe, filter_str);
|
err = process_system_preds(dir, tr, pe, filter_str);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
/* System filters just show a default message */
|
/* System filters just show a default message */
|
||||||
kfree(filter->filter_string);
|
kfree((*filterp)->filter_string);
|
||||||
filter->filter_string = NULL;
|
(*filterp)->filter_string = NULL;
|
||||||
} else {
|
} else {
|
||||||
append_filter_err(pe, filter);
|
append_filter_err(pe, *filterp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
create_filter_finish(pe);
|
create_filter_finish(pe);
|
||||||
|
|
||||||
*filterp = filter;
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1764,7 +1760,7 @@ static int create_system_filter(struct trace_subsystem_dir *dir,
|
||||||
int apply_event_filter(struct trace_event_file *file, char *filter_string)
|
int apply_event_filter(struct trace_event_file *file, char *filter_string)
|
||||||
{
|
{
|
||||||
struct trace_event_call *call = file->event_call;
|
struct trace_event_call *call = file->event_call;
|
||||||
struct event_filter *filter;
|
struct event_filter *filter = NULL;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if (!strcmp(strstrip(filter_string), "0")) {
|
if (!strcmp(strstrip(filter_string), "0")) {
|
||||||
|
@ -1817,7 +1813,7 @@ int apply_subsystem_event_filter(struct trace_subsystem_dir *dir,
|
||||||
{
|
{
|
||||||
struct event_subsystem *system = dir->subsystem;
|
struct event_subsystem *system = dir->subsystem;
|
||||||
struct trace_array *tr = dir->tr;
|
struct trace_array *tr = dir->tr;
|
||||||
struct event_filter *filter;
|
struct event_filter *filter = NULL;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
mutex_lock(&event_mutex);
|
mutex_lock(&event_mutex);
|
||||||
|
@ -2024,7 +2020,7 @@ int ftrace_profile_set_filter(struct perf_event *event, int event_id,
|
||||||
char *filter_str)
|
char *filter_str)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct event_filter *filter;
|
struct event_filter *filter = NULL;
|
||||||
struct trace_event_call *call;
|
struct trace_event_call *call;
|
||||||
|
|
||||||
mutex_lock(&event_mutex);
|
mutex_lock(&event_mutex);
|
||||||
|
@ -2140,7 +2136,7 @@ static struct test_filter_data_t {
|
||||||
#undef YES
|
#undef YES
|
||||||
#undef NO
|
#undef NO
|
||||||
|
|
||||||
#define DATA_CNT (sizeof(test_filter_data)/sizeof(struct test_filter_data_t))
|
#define DATA_CNT ARRAY_SIZE(test_filter_data)
|
||||||
|
|
||||||
static int test_pred_visited;
|
static int test_pred_visited;
|
||||||
|
|
||||||
|
|
|
@ -446,7 +446,7 @@ static int create_trace_uprobe(int argc, char **argv)
|
||||||
if (ret)
|
if (ret)
|
||||||
goto fail_address_parse;
|
goto fail_address_parse;
|
||||||
|
|
||||||
inode = igrab(d_inode(path.dentry));
|
inode = igrab(d_real_inode(path.dentry));
|
||||||
path_put(&path);
|
path_put(&path);
|
||||||
|
|
||||||
if (!inode || !S_ISREG(inode->i_mode)) {
|
if (!inode || !S_ISREG(inode->i_mode)) {
|
||||||
|
@ -602,24 +602,9 @@ static int probes_seq_show(struct seq_file *m, void *v)
|
||||||
char c = is_ret_probe(tu) ? 'r' : 'p';
|
char c = is_ret_probe(tu) ? 'r' : 'p';
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
seq_printf(m, "%c:%s/%s", c, tu->tp.call.class->system,
|
seq_printf(m, "%c:%s/%s %s:0x%0*lx", c, tu->tp.call.class->system,
|
||||||
trace_event_name(&tu->tp.call));
|
trace_event_name(&tu->tp.call), tu->filename,
|
||||||
seq_printf(m, " %s:", tu->filename);
|
(int)(sizeof(void *) * 2), tu->offset);
|
||||||
|
|
||||||
/* Don't print "0x (null)" when offset is 0 */
|
|
||||||
if (tu->offset) {
|
|
||||||
seq_printf(m, "0x%px", (void *)tu->offset);
|
|
||||||
} else {
|
|
||||||
switch (sizeof(void *)) {
|
|
||||||
case 4:
|
|
||||||
seq_printf(m, "0x00000000");
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
default:
|
|
||||||
seq_printf(m, "0x0000000000000000");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < tu->tp.nr_args; i++)
|
for (i = 0; i < tu->tp.nr_args; i++)
|
||||||
seq_printf(m, " %s=%s", tu->tp.args[i].name, tu->tp.args[i].comm);
|
seq_printf(m, " %s=%s", tu->tp.args[i].name, tu->tp.args[i].comm);
|
||||||
|
|
Loading…
Add table
Reference in a new issue