Re: [PATCH 2/2] events: callchain: Use RCU API to access RCU pointer
From: Joel Fernandes
Date: Wed Jan 29 2020 - 17:19:13 EST
On Wed, Jan 29, 2020 at 09:38:13PM +0530, Amol Grover wrote:
> callchain_cpus_entries is annotated as an RCU pointer.
> Hence rcu_dereference_protected or similar RCU API is
> required to dereference the pointer.
>
> This fixes the following sparse warning
> kernel/events/callchain.c:65:17: warning: incorrect type in assignment
>
> Signed-off-by: Amol Grover <frextrite@xxxxxxxxx>
> ---
> kernel/events/callchain.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c
> index f91e1f41d25d..a672d02a1b3a 100644
> --- a/kernel/events/callchain.c
> +++ b/kernel/events/callchain.c
> @@ -62,7 +62,8 @@ static void release_callchain_buffers(void)
> {
> struct callchain_cpus_entries *entries;
>
> - entries = callchain_cpus_entries;
> + entries = rcu_dereference_protected(callchain_cpus_entries,
> + lockdep_is_held(&callchain_mutex));
Reviewed-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
thanks,
- Joel
> RCU_INIT_POINTER(callchain_cpus_entries, NULL);
> call_rcu(&entries->rcu_head, release_callchain_buffers_rcu);
> }
> --
> 2.24.1
>