On 07-02-18, 11:34, Daniel Lezcano wrote: > On 07/02/2018 10:12, Viresh Kumar wrote: > > What about cpuidle_cooling_unregister() ? > > The unregister function is not needed because cpuidle can't be unloaded. > The cpuidle cooling device is registered after the cpuidle successfully > initialized itself, there is no error path.
Okay, then there are two more things here. First, you don't need a kref in your patch and simple counter should be used instead, as kref is obviously more heavy to be used for the single error path here. Secondly, what about CPU hotplug ? For example, the cpu-freq cooling device gets removed currently if all CPUs of a cluster are hotplugged-out. But with your code, even if the CPUs are gone, their cpu-idle cooling device will stay. -- viresh