diff options
| -rw-r--r-- | drivers/cpuidle/cpuidle.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c index 588b44aa1de4..8ffef26ffdcf 100644 --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c | |||
| @@ -285,6 +285,9 @@ int cpuidle_enable_device(struct cpuidle_device *dev) | |||
| 285 | int ret, i; | 285 | int ret, i; |
| 286 | struct cpuidle_driver *drv = cpuidle_get_driver(); | 286 | struct cpuidle_driver *drv = cpuidle_get_driver(); |
| 287 | 287 | ||
| 288 | if (!dev) | ||
| 289 | return -EINVAL; | ||
| 290 | |||
| 288 | if (dev->enabled) | 291 | if (dev->enabled) |
| 289 | return 0; | 292 | return 0; |
| 290 | if (!drv || !cpuidle_curr_governor) | 293 | if (!drv || !cpuidle_curr_governor) |
| @@ -369,8 +372,6 @@ static int __cpuidle_register_device(struct cpuidle_device *dev) | |||
| 369 | struct device *cpu_dev = get_cpu_device((unsigned long)dev->cpu); | 372 | struct device *cpu_dev = get_cpu_device((unsigned long)dev->cpu); |
| 370 | struct cpuidle_driver *cpuidle_driver = cpuidle_get_driver(); | 373 | struct cpuidle_driver *cpuidle_driver = cpuidle_get_driver(); |
| 371 | 374 | ||
| 372 | if (!dev) | ||
| 373 | return -EINVAL; | ||
| 374 | if (!try_module_get(cpuidle_driver->owner)) | 375 | if (!try_module_get(cpuidle_driver->owner)) |
| 375 | return -EINVAL; | 376 | return -EINVAL; |
| 376 | 377 | ||
| @@ -395,6 +396,9 @@ int cpuidle_register_device(struct cpuidle_device *dev) | |||
| 395 | { | 396 | { |
| 396 | int ret; | 397 | int ret; |
| 397 | 398 | ||
| 399 | if (!dev) | ||
| 400 | return -EINVAL; | ||
| 401 | |||
| 398 | mutex_lock(&cpuidle_lock); | 402 | mutex_lock(&cpuidle_lock); |
| 399 | 403 | ||
| 400 | if ((ret = __cpuidle_register_device(dev))) { | 404 | if ((ret = __cpuidle_register_device(dev))) { |
