mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 20:46:48 +02:00
ftrace: Make alloc_and_copy_ftrace_hash direct friendly
Make alloc_and_copy_ftrace_hash to copy also direct address for each hash entry. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org> Link: https://lore.kernel.org/bpf/20251230145010.103439-3-jolsa@kernel.org
This commit is contained in:
parent
4be42c9222
commit
676bfeae7b
|
|
@ -1212,7 +1212,7 @@ static void __add_hash_entry(struct ftrace_hash *hash,
|
|||
}
|
||||
|
||||
static struct ftrace_func_entry *
|
||||
add_hash_entry(struct ftrace_hash *hash, unsigned long ip)
|
||||
add_hash_entry_direct(struct ftrace_hash *hash, unsigned long ip, unsigned long direct)
|
||||
{
|
||||
struct ftrace_func_entry *entry;
|
||||
|
||||
|
|
@ -1221,11 +1221,18 @@ add_hash_entry(struct ftrace_hash *hash, unsigned long ip)
|
|||
return NULL;
|
||||
|
||||
entry->ip = ip;
|
||||
entry->direct = direct;
|
||||
__add_hash_entry(hash, entry);
|
||||
|
||||
return entry;
|
||||
}
|
||||
|
||||
static struct ftrace_func_entry *
|
||||
add_hash_entry(struct ftrace_hash *hash, unsigned long ip)
|
||||
{
|
||||
return add_hash_entry_direct(hash, ip, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
free_hash_entry(struct ftrace_hash *hash,
|
||||
struct ftrace_func_entry *entry)
|
||||
|
|
@ -1398,7 +1405,7 @@ alloc_and_copy_ftrace_hash(int size_bits, struct ftrace_hash *hash)
|
|||
size = 1 << hash->size_bits;
|
||||
for (i = 0; i < size; i++) {
|
||||
hlist_for_each_entry(entry, &hash->buckets[i], hlist) {
|
||||
if (add_hash_entry(new_hash, entry->ip) == NULL)
|
||||
if (add_hash_entry_direct(new_hash, entry->ip, entry->direct) == NULL)
|
||||
goto free_hash;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user