On Fri, Oct 19, 2012 at 11:10:49AM +0100, Daniel Lezcano wrote:
[...]
@@ -394,9 +404,9 @@ EXPORT_SYMBOL_GPL(cpuidle_disable_device); static int __cpuidle_register_device(struct cpuidle_device *dev) { int ret;
struct cpuidle_driver *cpuidle_driver = cpuidle_get_driver();
struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
if (!try_module_get(cpuidle_driver->owner))
if (!try_module_get(drv->owner)) return -EINVAL;
Not related to this patch, but also to the current version, this drv-> dereference is a bit wild, and should be checked with a !drv conditional.
If there is no driver registered it should fail gracefully, whereas current code is dereferencing NULL.
Lorenzo