Re: [PATCH v2 0/2] cpufreq: Fix a circular lock dependency problem

From: Rafael J. Wysocki
Date: Thu Jul 26 2018 - 05:08:50 EST


On Tuesday, July 24, 2018 8:26:03 PM CEST Waiman Long wrote:
> v2:
> - Remove the retry loop in the store method.
>
> This patchset works around a circular lock dependency issue in the
> cpufreq driver reported by lockdep. The two locks involved are the
> cpu_hotplup_lock and the reference count of a sysfs file.
>
> The cpufreq_register_driver() function uses the lock sequence:
>
> cpus_read_lock --> kn->count
>
> Whereas the cpufreq sysfs store method uses the sequence:
>
> kn->count --> cpus_read_lock
>
> This is not really an issue as a shared lock is used on the
> cpu_hotplup_lock. However, the lockdep code isn't able to handle
> shared locking. So one way to work around this is to define a
> cpus_read_trylock() function and uses it in the store method instead.
>
> Waiman Long (2):
> cpu/hotplug: Add a cpus_read_trylock() function
> cpufreq: Fix a circular lock dependency problem
>
> drivers/cpufreq/cpufreq.c | 7 ++++++-
> include/linux/cpu.h | 2 ++
> kernel/cpu.c | 6 ++++++
> 3 files changed, 14 insertions(+), 1 deletion(-)
>
>

I'm queuing up this series for 4.19.

If anyone has any concerns regarding it, please let me know.

Thanks,
Rafael