OSDN Git Service

cpuidle: Drop unused cpuidle_driver_ref/unref() functions
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 2 Jan 2020 20:42:16 +0000 (21:42 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 9 Jan 2020 15:47:22 +0000 (16:47 +0100)
The cpuidle_driver_ref() and cpuidle_driver_unref() functions are not
used and the refcnt field in struct cpuidle_driver operated by them
is not updated anywhere else (so it is permanently equal to 0), so
drop both of them along with refcnt.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/cpuidle/driver.c
include/linux/cpuidle.h

index ce6a5f8..4070e57 100644 (file)
@@ -155,8 +155,6 @@ static void __cpuidle_driver_init(struct cpuidle_driver *drv)
 {
        int i;
 
-       drv->refcnt = 0;
-
        /*
         * Use all possible CPUs as the default, because if the kernel boots
         * with some CPUs offline and then we online one of them, the CPU
@@ -240,9 +238,6 @@ static int __cpuidle_register_driver(struct cpuidle_driver *drv)
  */
 static void __cpuidle_unregister_driver(struct cpuidle_driver *drv)
 {
-       if (WARN_ON(drv->refcnt > 0))
-               return;
-
        if (drv->bctimer) {
                drv->bctimer = 0;
                on_each_cpu_mask(drv->cpumask, cpuidle_setup_broadcast_timer,
@@ -350,47 +345,6 @@ struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev)
 EXPORT_SYMBOL_GPL(cpuidle_get_cpu_driver);
 
 /**
- * cpuidle_driver_ref - get a reference to the driver.
- *
- * Increment the reference counter of the cpuidle driver associated with
- * the current CPU.
- *
- * Returns a pointer to the driver, or NULL if the current CPU has no driver.
- */
-struct cpuidle_driver *cpuidle_driver_ref(void)
-{
-       struct cpuidle_driver *drv;
-
-       spin_lock(&cpuidle_driver_lock);
-
-       drv = cpuidle_get_driver();
-       if (drv)
-               drv->refcnt++;
-
-       spin_unlock(&cpuidle_driver_lock);
-       return drv;
-}
-
-/**
- * cpuidle_driver_unref - puts down the refcount for the driver
- *
- * Decrement the reference counter of the cpuidle driver associated with
- * the current CPU.
- */
-void cpuidle_driver_unref(void)
-{
-       struct cpuidle_driver *drv;
-
-       spin_lock(&cpuidle_driver_lock);
-
-       drv = cpuidle_get_driver();
-       if (drv && !WARN_ON(drv->refcnt <= 0))
-               drv->refcnt--;
-
-       spin_unlock(&cpuidle_driver_lock);
-}
-
-/**
  * cpuidle_driver_state_disabled - Disable or enable an idle state
  * @drv: cpuidle driver owning the state
  * @idx: State index
index 1dabe36..23744d4 100644 (file)
@@ -115,7 +115,6 @@ DECLARE_PER_CPU(struct cpuidle_device, cpuidle_dev);
 struct cpuidle_driver {
        const char              *name;
        struct module           *owner;
-       int                     refcnt;
 
         /* used by the cpuidle framework to setup the broadcast timer */
        unsigned int            bctimer:1;
@@ -147,8 +146,6 @@ extern u64 cpuidle_poll_time(struct cpuidle_driver *drv,
 
 extern int cpuidle_register_driver(struct cpuidle_driver *drv);
 extern struct cpuidle_driver *cpuidle_get_driver(void);
-extern struct cpuidle_driver *cpuidle_driver_ref(void);
-extern void cpuidle_driver_unref(void);
 extern void cpuidle_driver_state_disabled(struct cpuidle_driver *drv, int idx,
                                        bool disable);
 extern void cpuidle_unregister_driver(struct cpuidle_driver *drv);
@@ -186,8 +183,6 @@ static inline u64 cpuidle_poll_time(struct cpuidle_driver *drv,
 static inline int cpuidle_register_driver(struct cpuidle_driver *drv)
 {return -ENODEV; }
 static inline struct cpuidle_driver *cpuidle_get_driver(void) {return NULL; }
-static inline struct cpuidle_driver *cpuidle_driver_ref(void) {return NULL; }
-static inline void cpuidle_driver_unref(void) {}
 static inline void cpuidle_driver_state_disabled(struct cpuidle_driver *drv,
                                               int idx, bool disable) { }
 static inline void cpuidle_unregister_driver(struct cpuidle_driver *drv) { }