[<prev] [next>] [day] [month] [year] [list]
Message-Id: <81d699ccc59f2ae1eab02ecc0b8e2a844f78b1c4.1438166099.git.viresh.kumar@linaro.org>
Date: Wed, 29 Jul 2015 16:22:59 +0530
From: Viresh Kumar <viresh.kumar@...aro.org>
To: Rafael Wysocki <rjw@...ysocki.net>, sboyd@...eaurora.org
Cc: linaro-kernel@...ts.linaro.org, linux-pm@...r.kernel.org,
rob.herring@...aro.org, arnd.bergmann@...aro.org, nm@...com,
broonie@...nel.org, mturquette@...libre.com, Sudeep.Holla@....com,
viswanath.puttagunta@...aro.org, l.stach@...gutronix.de,
thomas.petazzoni@...e-electrons.com,
linux-arm-kernel@...ts.infradead.org, ta.omasab@...il.com,
kesavan.abhilash@...il.com, khilman@...aro.org,
santosh.shilimkar@...cle.com, b.zolnierkie@...sung.com,
Viresh Kumar <viresh.kumar@...aro.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Len Brown <len.brown@...el.com>,
linux-kernel@...r.kernel.org (open list),
Pavel Machek <pavel@....cz>
Subject: [PATCH V3 04/16] PM / OPP: Create _remove_device_opp() for freeing dev_opp
This will be used from multiple places later. Lets create a separate
routine for that.
Reviewed-by: Stephen Boyd <sboyd@...eaurora.org>
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>
Signed-off-by: Viresh Kumar <viresh.kumar@...aro.org>
---
drivers/base/power/opp.c | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/drivers/base/power/opp.c b/drivers/base/power/opp.c
index 8c3fd57975fb..7895fdd64192 100644
--- a/drivers/base/power/opp.c
+++ b/drivers/base/power/opp.c
@@ -449,6 +449,22 @@ static void _kfree_device_rcu(struct rcu_head *head)
}
/**
+ * _remove_device_opp() - Removes a device OPP table
+ * @dev_opp: device OPP table to be removed.
+ *
+ * Removes/frees device OPP table it it doesn't contain any OPPs.
+ */
+static void _remove_device_opp(struct device_opp *dev_opp)
+{
+ if (!list_empty(&dev_opp->opp_list))
+ return;
+
+ list_del_rcu(&dev_opp->node);
+ call_srcu(&dev_opp->srcu_head.srcu, &dev_opp->rcu_head,
+ _kfree_device_rcu);
+}
+
+/**
* _kfree_opp_rcu() - Free OPP RCU handler
* @head: RCU head
*/
@@ -481,11 +497,7 @@ static void _opp_remove(struct device_opp *dev_opp,
list_del_rcu(&opp->node);
call_srcu(&dev_opp->srcu_head.srcu, &opp->rcu_head, _kfree_opp_rcu);
- if (list_empty(&dev_opp->opp_list)) {
- list_del_rcu(&dev_opp->node);
- call_srcu(&dev_opp->srcu_head.srcu, &dev_opp->rcu_head,
- _kfree_device_rcu);
- }
+ _remove_device_opp(dev_opp);
}
/**
--
2.4.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists