On 2 August 2013 02:23, Rafael J. Wysocki rjw@sisk.pl wrote:
To remove that inconsistency make cpufreq_add_policy_cpu() execute cpufreq_cpu_put() for the given policy before returning, which decrements the driver module refcount so that it will be 0 after __cpufreq_add_dev() returns. Moreover, remove the cpufreq_cpu_get() call from cpufreq_add_dev_symlink(), since both the policy refcount and the driver module refcount are nonzero when it is called and they don't need to be bumped up by it.
Sorry for creating so many problems but my concerns with this patch aren't yet over :(
Should we increment policy refcount or kobj refcount for every cpu it is used on? I think yes, that's probably the right way of doing it.
And so we simply can't remove calls to cpufreq_cpu_get() from cpufreq_add_dev_symlink() routine and also from cpufreq_add_policy_cpu()..