From: Viresh Kumar <viresh.kumar@linaro.org>
To: Rafael Wysocki <rjw@rjwysocki.net>
Cc: linaro-kernel@lists.linaro.org, linux-pm@vger.kernel.org,
sboyd@codeaurora.org, prarit@redhat.com, skannan@codeaurora.org,
Viresh Kumar <viresh.kumar@linaro.org>
Subject: [PATCH 16/18] cpufreq: Call cpufreq_policy_put_kobj() from cpufreq_policy_free()
Date: Tue, 27 Jan 2015 14:06:22 +0530 [thread overview]
Message-ID: <ae271775e524be0be8a2bc887deed71a7fabc78f.1422346933.git.viresh.kumar@linaro.org> (raw)
In-Reply-To: <cover.1422346933.git.viresh.kumar@linaro.org>
In-Reply-To: <cover.1422346933.git.viresh.kumar@linaro.org>
Both cpufreq_policy_put_kobj() and cpufreq_policy_free() are always called
together, cpufreq_policy_put_kobj() followed by cpufreq_policy_free().
cpufreq_policy_put_kobj() is actually part of freeing policy and so can be
called from cpufreq_policy_free().
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
drivers/cpufreq/cpufreq.c | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 4a97d7428d25..0e03ae1bc96a 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1140,8 +1140,9 @@ static void cpufreq_policy_put_kobj(struct cpufreq_policy *policy, bool notify)
pr_debug("wait complete\n");
}
-static void cpufreq_policy_free(struct cpufreq_policy *policy)
+static void cpufreq_policy_free(struct cpufreq_policy *policy, bool notify)
{
+ cpufreq_policy_put_kobj(policy, notify);
free_cpumask_var(policy->related_cpus);
free_cpumask_var(policy->cpus);
kfree(policy);
@@ -1312,9 +1313,7 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif)
if (cpufreq_driver->exit)
cpufreq_driver->exit(policy);
err_set_policy_cpu:
- cpufreq_policy_put_kobj(policy, recover_policy);
- cpufreq_policy_free(policy);
-
+ cpufreq_policy_free(policy, recover_policy);
nomem_out:
up_read(&cpufreq_rwsem);
@@ -1445,10 +1444,6 @@ static int __cpufreq_remove_dev_finish(struct device *dev,
}
}
- /* Free the policy kobjects only if the driver is getting removed. */
- if (sif)
- cpufreq_policy_put_kobj(policy, true);
-
/*
* Perform the ->exit() even during light-weight tear-down,
* since this is a core component, and is essential for the
@@ -1462,8 +1457,9 @@ static int __cpufreq_remove_dev_finish(struct device *dev,
list_del(&policy->policy_list);
write_unlock_irqrestore(&cpufreq_driver_lock, flags);
+ /* Free the policy only if the driver is getting removed. */
if (sif)
- cpufreq_policy_free(policy);
+ cpufreq_policy_free(policy, true);
else
policy->governor = NULL;
--
2.3.0.rc0.44.ga94655d
next prev parent reply other threads:[~2015-01-27 8:37 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-27 8:36 [PATCH 00/18] cpufreq: don't loose cpufreq history on CPU hotplug Viresh Kumar
2015-01-27 8:36 ` [PATCH 01/18] cpufreq: Drop cpufreq_disabled() check from cpufreq_cpu_{get|put}() Viresh Kumar
2015-02-03 22:17 ` Saravana Kannan
2015-01-27 8:36 ` [PATCH 02/18] cpufreq: Create for_each_policy() Viresh Kumar
2015-02-03 22:22 ` Saravana Kannan
2015-02-04 4:53 ` Viresh Kumar
2015-01-27 8:36 ` [PATCH 03/18] cpufreq: Create for_each_governor() Viresh Kumar
2015-02-03 22:23 ` Saravana Kannan
2015-01-27 8:36 ` [PATCH 04/18] cpufreq: Manage fallback policies in a list Viresh Kumar
2015-02-03 0:41 ` Rafael J. Wysocki
2015-02-03 4:10 ` Viresh Kumar
2015-02-03 15:04 ` Rafael J. Wysocki
2015-02-04 6:18 ` Viresh Kumar
2015-02-03 22:28 ` Saravana Kannan
2015-02-04 6:20 ` Viresh Kumar
2015-02-04 22:28 ` Saravana Kannan
2015-02-04 23:20 ` Rafael J. Wysocki
2015-02-05 1:55 ` Saravana Kannan
2015-02-05 15:11 ` Rafael J. Wysocki
2015-02-05 22:55 ` Saravana Kannan
2015-02-17 8:06 ` Viresh Kumar
2015-02-17 18:15 ` Rafael J. Wysocki
2015-02-18 4:23 ` Viresh Kumar
2015-02-18 21:15 ` Saravana Kannan
2015-02-19 3:24 ` Viresh Kumar
2015-01-27 8:36 ` [PATCH 05/18] cpufreq: Manage governor usage history with 'policy->last_governor' Viresh Kumar
2015-02-12 3:03 ` Saravana Kannan
2015-02-12 7:44 ` Viresh Kumar
2015-02-12 8:00 ` skannan
2015-02-17 8:02 ` Viresh Kumar
2015-01-27 8:36 ` [PATCH 06/18] cpufreq: Reuse policy list instead of per-cpu variable 'cpufreq_cpu_data' Viresh Kumar
2015-02-12 3:13 ` Saravana Kannan
2015-02-12 7:48 ` Viresh Kumar
2015-01-27 8:36 ` [PATCH 07/18] cpufreq: Drop (now) useless check 'cpu > nr_cpu_ids' Viresh Kumar
2015-02-12 3:15 ` Saravana Kannan
2015-02-12 7:50 ` Viresh Kumar
2015-01-27 8:36 ` [PATCH 08/18] cpufreq: Add doc style comment about cpufreq_cpu_{get|put}() Viresh Kumar
2015-02-12 3:19 ` Saravana Kannan
2015-02-12 7:52 ` Viresh Kumar
2015-01-27 8:36 ` [PATCH 09/18] cpufreq: Mark policy->governor = NULL for fallback policies Viresh Kumar
2015-02-12 3:22 ` Saravana Kannan
2015-02-12 7:56 ` Viresh Kumar
2015-01-27 8:36 ` [PATCH 10/18] cpufreq: Don't allow updating inactive-policies from sysfs Viresh Kumar
2015-02-12 3:24 ` Saravana Kannan
2015-01-27 8:36 ` [PATCH 11/18] cpufreq: Track cpu managing sysfs kobjects separately Viresh Kumar
2015-01-27 8:36 ` [PATCH 12/18] cpufreq: Stop migrating sysfs files on hotplug Viresh Kumar
2015-01-27 8:36 ` [PATCH 13/18] cpufreq: Keep a single path for adding managed CPUs Viresh Kumar
2015-01-27 8:36 ` [PATCH 14/18] cpufreq: Remove cpufreq_update_policy() Viresh Kumar
2015-01-27 8:36 ` [PATCH 15/18] cpufreq: Initialize policy->kobj while allocating policy Viresh Kumar
2015-01-27 8:36 ` Viresh Kumar [this message]
2015-01-27 8:36 ` [PATCH 17/18] cpufreq: Restart governor as soon as possible Viresh Kumar
2015-01-27 8:36 ` [PATCH 18/18] cpufreq: Merge __cpufreq_add_dev() and cpufreq_add_dev() Viresh Kumar
2015-01-27 15:06 ` [PATCH 00/18] cpufreq: don't loose cpufreq history on CPU hotplug Rafael J. Wysocki
2015-01-27 14:59 ` Viresh Kumar
2015-01-28 19:35 ` Saravana Kannan
2015-01-29 1:43 ` Viresh Kumar
2015-02-03 0:30 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ae271775e524be0be8a2bc887deed71a7fabc78f.1422346933.git.viresh.kumar@linaro.org \
--to=viresh.kumar@linaro.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-pm@vger.kernel.org \
--cc=prarit@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=sboyd@codeaurora.org \
--cc=skannan@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).