Explorar el Código

cpuidle: add cpuidle_unregister_driver() error check

Assure that cpuidle_unregister_driver() will not clobber
the registered driver if unregistered by somebody else.

Signed-off-by: Len Brown <len.brown@intel.com>
Len Brown hace 15 años
padre
commit
c0d64cb031
Se han modificado 1 ficheros con 4 adiciones y 1 borrados
  1. 4 1
      drivers/cpuidle/driver.c

+ 4 - 1
drivers/cpuidle/driver.c

@@ -45,8 +45,11 @@ EXPORT_SYMBOL_GPL(cpuidle_register_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;