X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=drivers%2Fcpuidle%2Fdriver.c;h=fd1601e3d1250faaa3b4863eb27706529076bcb1;hb=64960848abd18d0bcde3f53ffa7ed0b631e6b25d;hp=2257004fe33d528454a8c40680c08b0ea9335348;hpb=81f8320f624a785d77443ace83391d0fdee695f6;p=mv-sheeva.git diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c index 2257004fe33..fd1601e3d12 100644 --- a/drivers/cpuidle/driver.c +++ b/drivers/cpuidle/driver.c @@ -14,7 +14,7 @@ #include "cpuidle.h" -struct cpuidle_driver *cpuidle_curr_driver; +static struct cpuidle_driver *cpuidle_curr_driver; DEFINE_SPINLOCK(cpuidle_driver_lock); /** @@ -39,14 +39,26 @@ int cpuidle_register_driver(struct cpuidle_driver *drv) EXPORT_SYMBOL_GPL(cpuidle_register_driver); +/** + * cpuidle_get_driver - return the current driver + */ +struct cpuidle_driver *cpuidle_get_driver(void) +{ + return cpuidle_curr_driver; +} +EXPORT_SYMBOL_GPL(cpuidle_get_driver); + /** * cpuidle_unregister_driver - unregisters a driver * @drv: the driver */ void cpuidle_unregister_driver(struct cpuidle_driver *drv) { - if (!drv) + if (drv != cpuidle_curr_driver) { + WARN(1, "invalid cpuidle_unregister_driver(%s)\n", + drv->name); return; + } spin_lock(&cpuidle_driver_lock); cpuidle_curr_driver = NULL;