]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
cpuidle: Extract and export no-lock variants of cpuidle_unregister_device()
authorHuisong Li <lihuisong@huawei.com>
Tue, 7 Apr 2026 08:11:40 +0000 (16:11 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 7 Apr 2026 13:32:20 +0000 (15:32 +0200)
commita4c6c18e93a1d24df9ab95794cef471c89daefe4
tree57e933f09937e7eb7fb5ebb40a4f2bae637a149f
parent47e6a863a88034be102bde11197f2ca1bc18cbaf
cpuidle: Extract and export no-lock variants of cpuidle_unregister_device()

The cpuidle_unregister_device() function always acquires the internal
cpuidle_lock (or pause/resume idle) during their execution.

However, in some power notification scenarios (e.g., when old idle
states may become unavailable), it is necessary to efficiently disable
cpuidle first, then remove and re-create all cpuidle devices for all
CPUs. To avoid frequent lock overhead and ensure atomicity across the
entire batch operation, the caller needs to hold the cpuidle_lock once
outside the loop.

To address this, extract the core logic into the new function
cpuidle_unregister_device_no_lock() and export it.

Signed-off-by: Huisong Li <lihuisong@huawei.com>
[ rjw: Added missing "inline", subject and changelog tweaks ]
Link: https://patch.msgid.link/20260407081141.2493581-2-lihuisong@huawei.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpuidle/cpuidle.c
include/linux/cpuidle.h