On Tue,  3 Feb 2026 10:38:08 +0100
Jiri Olsa <[email protected]> wrote:

> diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
> index 705db0a6d995..6dade0eaee46 100644
> --- a/include/linux/ftrace.h
> +++ b/include/linux/ftrace.h
> @@ -413,6 +413,7 @@ struct ftrace_hash *alloc_ftrace_hash(int size_bits);
>  void free_ftrace_hash(struct ftrace_hash *hash);
>  struct ftrace_func_entry *add_ftrace_hash_entry_direct(struct ftrace_hash 
> *hash,
>                                                      unsigned long ip, 
> unsigned long direct);
> +unsigned long ftrace_hash_count(struct ftrace_hash *hash);
>  
>  /* The hash used to know what functions callbacks trace */
>  struct ftrace_ops_hash {
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index b12dbd93ae1c..be9e0ac1fd95 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -6284,7 +6284,7 @@ int modify_ftrace_direct(struct ftrace_ops *ops, 
> unsigned long addr)
>  }
>  EXPORT_SYMBOL_GPL(modify_ftrace_direct);
>  
> -static unsigned long hash_count(struct ftrace_hash *hash)
> +unsigned long ftrace_hash_count(struct ftrace_hash *hash)
>  {
>       return hash ? hash->count : 0;
>  }

I think this may make it less likely to inline this function, so let's just
add an external function, and even add a "inline" to the original:

static inline unsigned long hash_count(struct ftrace_hash *hash)
{
        return hash ? hash->count : 0;
}

unsigned long ftrace_hash_count(struct ftrace_hash *hash)
{
        return hash_count(hash);
}

And don't modify anything else.

-- Steve


Reply via email to