Hi Steven, Today's linux-next merge of the ftrace tree got a conflict in kernel/trace/ftrace.c between commit b67bfe0d42ca ("hlist: drop the node parameter from iterators") from Linus' tree and commit f1943977e664 ("tracing: Get rid of unneeded key calculation in ftrace_hash_move()") and e1df4cb682ab ("ftrace: Fix function probe to only enable needed functions") from the ftrace tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc kernel/trace/ftrace.c index b3fde6d,9b44abb..0000000 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@@ -761,9 -755,10 +754,9 @@@ ftrace_find_profiled_func(struct ftrace { struct ftrace_profile *rec; struct hlist_head *hhd; - struct hlist_node *n; unsigned long key; - key = hash_long(ip, ftrace_profile_bits); + key = hash_long(ip, FTRACE_PROFILE_HASH_BITS); hhd = &stat->hash[key]; if (hlist_empty(hhd)) @@@ -1371,11 -1354,7 +1363,7 @@@ ftrace_hash_move(struct ftrace_ops *ops size = 1 << src->size_bits; for (i = 0; i < size; i++) { hhd = &src->buckets[i]; - hlist_for_each_entry_safe(entry, tp, tn, hhd, hlist) { + hlist_for_each_entry_safe(entry, tn, hhd, hlist) { - if (bits > 0) - key = hash_long(entry->ip, bits); - else - key = 0; remove_hash_entry(src, entry); __add_hash_entry(new_hash, entry); } @@@ -3062,8 -3075,13 +3070,13 @@@ static voi __unregister_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops, void *data, int flags) { + struct ftrace_func_entry *rec_entry; struct ftrace_func_probe *entry; + struct ftrace_func_probe *p; + struct ftrace_hash **orig_hash = &trace_probe_ops.filter_hash; + struct list_head free_list; + struct ftrace_hash *hash; - struct hlist_node *n, *tmp; + struct hlist_node *tmp; char str[KSYM_SYMBOL_LEN]; int type = MATCH_FULL; int i, len = 0;
Attachment:
pgpbyG0LUm552.pgp
Description: PGP signature