git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pandora: update defconfig
[pandora-kernel.git]
/
drivers
/
cpuidle
/
driver.c
diff --git
a/drivers/cpuidle/driver.c
b/drivers/cpuidle/driver.c
index
2257004
..
fd1601e
100644
(file)
--- a/
drivers/cpuidle/driver.c
+++ b/
drivers/cpuidle/driver.c
@@
-14,7
+14,7
@@
#include "cpuidle.h"
#include "cpuidle.h"
-struct cpuidle_driver *cpuidle_curr_driver;
+st
atic st
ruct cpuidle_driver *cpuidle_curr_driver;
DEFINE_SPINLOCK(cpuidle_driver_lock);
/**
DEFINE_SPINLOCK(cpuidle_driver_lock);
/**
@@
-39,14
+39,26
@@
int cpuidle_register_driver(struct cpuidle_driver *drv)
EXPORT_SYMBOL_GPL(cpuidle_register_driver);
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)
{
/**
* 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;
return;
+ }
spin_lock(&cpuidle_driver_lock);
cpuidle_curr_driver = NULL;
spin_lock(&cpuidle_driver_lock);
cpuidle_curr_driver = NULL;