Re: [PATCH v1] cpuidle: tegra: Annotate tegra_pm_set_cpu_in_lp2() with RCU_NONIDLE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 4, 2020 at 2:21 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote:
>
> Annotate tegra_pm_set[clear]_cpu_in_lp2() with RCU_NONIDLE in order to
> fix lockdep warning about suspicious RCU usage of a spinlock during late
> idling phase.
>
>  WARNING: suspicious RCU usage
>  ...
>  include/trace/events/lock.h:13 suspicious rcu_dereference_check() usage!
>  ...
>   (dump_stack) from (lock_acquire)
>   (lock_acquire) from (_raw_spin_lock)
>   (_raw_spin_lock) from (tegra_pm_set_cpu_in_lp2)
>   (tegra_pm_set_cpu_in_lp2) from (tegra_cpuidle_enter)
>   (tegra_cpuidle_enter) from (cpuidle_enter_state)
>   (cpuidle_enter_state) from (cpuidle_enter_state_coupled)
>   (cpuidle_enter_state_coupled) from (cpuidle_enter)
>   (cpuidle_enter) from (do_idle)
>  ...
>
> Tested-by: Peter Geis <pgwipeout@xxxxxxxxx>
> Reported-by: Peter Geis <pgwipeout@xxxxxxxxx>
> Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx>
> ---
>  drivers/cpuidle/cpuidle-tegra.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/cpuidle/cpuidle-tegra.c b/drivers/cpuidle/cpuidle-tegra.c
> index e8956706a291..191966dc8d02 100644
> --- a/drivers/cpuidle/cpuidle-tegra.c
> +++ b/drivers/cpuidle/cpuidle-tegra.c
> @@ -189,7 +189,7 @@ static int tegra_cpuidle_state_enter(struct cpuidle_device *dev,
>         }
>
>         local_fiq_disable();
> -       tegra_pm_set_cpu_in_lp2();
> +       RCU_NONIDLE(tegra_pm_set_cpu_in_lp2());
>         cpu_pm_enter();
>
>         switch (index) {
> @@ -207,7 +207,7 @@ static int tegra_cpuidle_state_enter(struct cpuidle_device *dev,
>         }
>
>         cpu_pm_exit();
> -       tegra_pm_clear_cpu_in_lp2();
> +       RCU_NONIDLE(tegra_pm_clear_cpu_in_lp2());
>         local_fiq_enable();
>
>         return err ?: index;
> --

Applied as a fix for 5.10-rc, thanks!



[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux