On 4 September 2014 08:21, Yuantian Tang Yuantian.Tang@freescale.com wrote:
Can't agree you more.
Its not about upstreaming my patch but doing the right thing.
As I know, there is no such function to get mask of online and offline cpus in a cluster.
This is a primary requirement of cpufreq-subsystem. The ->init() callback must initialize policy->cpus to the mask of all online+offline CPUs that are sharing clock.
Okay, then what I can say is your driver is already broken (without my patch) when we use it as a module.
- build driver as module and don't load it by default
- boot your system
- offline CPUs 8 to 15 as you did above.
- insert module
- try to online cores as you did above.
Above sequence of events would reproduce similar crash for you. So, either fix this problem or mark your module as 'bool' instead of 'tristate' so that it can't be compiled as module anymore.
-- viresh