From: Viresh Kumar <viresh.kumar@linaro.org>
To: Markus Elfring <Markus.Elfring@web.de>
Cc: linux-pm@vger.kernel.org, kernel-janitors@vger.kernel.org,
"Rafael J. Wysocki" <rafael@kernel.org>,
cocci@inria.fr, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [v2] cpufreq: sparc: Fix exception handling in two functions
Date: Tue, 11 Apr 2023 09:00:48 +0530 [thread overview]
Message-ID: <20230411033048.zwsijlyiksjcmgcc@vireshk-i7> (raw)
In-Reply-To: <f9f40c8a-a392-27e3-b19c-c8985a163159@web.de>
On 10-04-23, 15:08, Markus Elfring wrote:
> >> @@ -337,21 +337,17 @@ static int __init us2e_freq_init(void)
> >> driver->get = us2e_freq_get;
> >> driver->exit = us2e_freq_cpu_exit;
> >> strcpy(driver->name, "UltraSPARC-IIe");
> >> -
> >> - cpufreq_us2e_driver = driver;
> >
> > This changes the behavior of the code here as "cpufreq_us2e_driver"
> > is used in us2e_freq_cpu_exit(). If some failure occurs after a
> > policy is initialized, and driver doesn't register successfully, then
> > we won't set the frequency to the lowest index of the table anymore.
>
> The setting of the variables “cpufreq_us…_driver” influences the need
> to reset them to null pointers for the desired exception handling,
> doesn't it?
This is what all should be done for these drivers I guess. There is no
points doing the dance of {de}allocating resources unnecessarily.
diff --git a/drivers/cpufreq/sparc-us2e-cpufreq.c b/drivers/cpufreq/sparc-us2e-cpufreq.c
index 92acbb25abb3..b31fb07f3f39 100644
--- a/drivers/cpufreq/sparc-us2e-cpufreq.c
+++ b/drivers/cpufreq/sparc-us2e-cpufreq.c
@@ -20,7 +20,14 @@
#include <asm/asi.h>
#include <asm/timer.h>
-static struct cpufreq_driver *cpufreq_us2e_driver;
+static struct cpufreq_driver cpufreq_us2e_driver = {
+ .name = "UltraSPARC-IIe",
+ .init = us2e_freq_cpu_init,
+ .verify = cpufreq_generic_frequency_table_verify,
+ .target_index = us2e_freq_target,
+ .get = us2e_freq_get,
+ .exit = us2e_freq_cpu_exit,
+};
struct us2e_freq_percpu_info {
struct cpufreq_frequency_table table[6];
@@ -300,9 +307,7 @@ static int __init us2e_freq_cpu_init(struct cpufreq_policy *policy)
static int us2e_freq_cpu_exit(struct cpufreq_policy *policy)
{
- if (cpufreq_us2e_driver)
- us2e_freq_target(policy, 0);
-
+ us2e_freq_target(policy, 0);
return 0;
}
@@ -319,39 +324,15 @@ static int __init us2e_freq_init(void)
impl = ((ver >> 32) & 0xffff);
if (manuf == 0x17 && impl == 0x13) {
- struct cpufreq_driver *driver;
-
- ret = -ENOMEM;
- driver = kzalloc(sizeof(*driver), GFP_KERNEL);
- if (!driver)
- goto err_out;
-
us2e_freq_table = kzalloc((NR_CPUS * sizeof(*us2e_freq_table)),
GFP_KERNEL);
if (!us2e_freq_table)
- goto err_out;
+ return -ENOMEM;
- driver->init = us2e_freq_cpu_init;
- driver->verify = cpufreq_generic_frequency_table_verify;
- driver->target_index = us2e_freq_target;
- driver->get = us2e_freq_get;
- driver->exit = us2e_freq_cpu_exit;
- strcpy(driver->name, "UltraSPARC-IIe");
-
- cpufreq_us2e_driver = driver;
ret = cpufreq_register_driver(driver);
if (ret)
- goto err_out;
-
- return 0;
+ kfree(us2e_freq_table);
-err_out:
- if (driver) {
- kfree(driver);
- cpufreq_us2e_driver = NULL;
- }
- kfree(us2e_freq_table);
- us2e_freq_table = NULL;
return ret;
}
@@ -360,13 +341,8 @@ static int __init us2e_freq_init(void)
static void __exit us2e_freq_exit(void)
{
- if (cpufreq_us2e_driver) {
- cpufreq_unregister_driver(cpufreq_us2e_driver);
- kfree(cpufreq_us2e_driver);
- cpufreq_us2e_driver = NULL;
- kfree(us2e_freq_table);
- us2e_freq_table = NULL;
- }
+ cpufreq_unregister_driver(cpufreq_us2e_driver);
+ kfree(us2e_freq_table);
}
MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
--
viresh
next prev parent reply other threads:[~2023-04-11 3:31 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <f9303bdc-b1a7-be5e-56c6-dfa8232b8b55@web.de>
[not found] ` <0981dc33-95d0-4a1b-51d9-168907da99e6@web.de>
2023-03-17 13:11 ` [PATCH] powerpc/pseries: Fix exception handling in pSeries_reconfig_add_node() Nathan Lynch
[not found] ` <a01643fd-1e4a-1183-2fa6-000465bc81f3@web.de>
2023-03-17 15:41 ` Nathan Lynch
[not found] ` <2f5a00f6-f3fb-9f00-676a-acdcbef90c6c@web.de>
2023-03-20 15:38 ` Nathan Lynch
[not found] ` <afb528f2-5960-d107-c3ba-42a3356ffc65@web.de>
[not found] ` <d4bcde15-b4f1-0e98-9072-3153d1bd21bc@web.de>
[not found] ` <08ddf274-b9a3-a702-dd1b-2c11b316ac5f@web.de>
2024-01-05 17:19 ` [PATCH resent v2 0/2] powerpc/pseries: Fixes for " Markus Elfring
[not found] ` <afe30fc6-04c9-528c-f84a-67902b5a6ed8@web.de>
2023-03-19 11:40 ` [PATCH] RDMA/siw: Fix exception handling in siw_accept_newconn() Leon Romanovsky
[not found] ` <1c06e86d-1468-c11a-8344-9563ad6047b5@web.de>
2023-03-19 14:11 ` Leon Romanovsky
[not found] ` <a03c1d04-a41e-7722-c36a-bd6f61094702@web.de>
2023-03-19 17:37 ` Leon Romanovsky
[not found] ` <f0f96f74-21d1-f5bf-1086-1c3ce0ea18f5@web.de>
2023-03-19 11:41 ` [PATCH] RDMA/erdma: Fix exception handling in erdma_accept_newconn() Leon Romanovsky
2023-03-19 13:36 ` Cheng Xu
[not found] ` <521b63e1-9470-58ef-599e-50a1846e5380@web.de>
2023-03-20 4:21 ` [PATCH] Input: iforce - Fix exception handling in iforce_usb_probe() Dmitry Torokhov
2023-03-20 4:34 ` Tetsuo Handa
2023-03-20 6:05 ` Dmitry Torokhov
[not found] ` <e3aaeecf-8e74-2e74-c58a-d80e153e98f9@web.de>
2023-03-22 9:36 ` [PATCH] media: hantro: HEVC: Fix exception handling in tile_buffer_reallocate() Benjamin Gaignard
[not found] ` <6e9ca062-939b-af96-c8ff-56ad485d6e79@web.de>
2023-03-24 17:30 ` [PATCH] mm/mempolicy: Fix exception handling in shared_policy_replace() Vlastimil Babka
[not found] ` <e6656c83-ee7a-a253-2028-109138779c94@web.de>
[not found] ` <ea0ff67b-3665-db82-9792-67a633ba07f5@web.de>
2023-03-24 17:46 ` [PATCH resent] drm/amd/display: Fix exception handling in dm_validate_stream_and_context() Hamza Mahfooz
[not found] ` <7a523efc-a82b-a1a1-e846-6047226cc968@web.de>
2023-03-24 18:33 ` Hamza Mahfooz
[not found] ` <9e0a7e6c-484d-92e0-ddf9-6e541403327e@web.de>
2023-03-24 20:07 ` [PATCH] selftests/bpf: Improve exception handling in rbtree_add_and_remove() Alexei Starovoitov
[not found] ` <e33f264a-7ee9-4ebc-d58e-bbb7fd567198@web.de>
[not found] ` <d0381c8e-7302-b0ed-cf69-cbc8c3618106@web.de>
2023-03-25 10:16 ` [PATCH resent] bcache: Fix exception handling in mca_alloc() Coly Li
[not found] ` <13b4a57a-5911-16db-2b6e-588e5137c3aa@web.de>
2023-03-25 16:07 ` [PATCH v2] " Coly Li
[not found] ` <00589154-00ac-4ed5-2a37-60b3c6f6c523@web.de>
[not found] ` <b7b6db19-055e-ace8-da37-24b4335e93b2@web.de>
2023-03-25 11:51 ` [PATCH resent] mei: Fix exception handling in mei_cl_irq_read_msg() Winkler, Tomas
[not found] ` <c383bdca-6f0d-4a75-e788-e1920faa0a62@web.de>
2023-03-25 19:24 ` [PATCH] selftests: cgroup: Fix exception handling in test_memcg_oom_group_score_events() Lorenzo Stoakes
[not found] ` <5b7921c9-ee5d-c372-b19b-2701bcf33148@web.de>
2023-03-26 21:39 ` David Vernet
[not found] ` <c46dbb48-259b-1de9-2364-9bfaf1061944@web.de>
2023-03-27 9:13 ` David Vernet
[not found] ` <ab860edf-79ca-2035-c5a3-d25be6fd9dac@web.de>
[not found] ` <3a35fb28-5937-72f8-b2e8-b1d9899b5e43@web.de>
2023-03-27 9:11 ` [PATCH resent] perf/x86/amd/uncore: Fix exception handling in amd_uncore_cpu_up_prepare() Adrian Hunter
2023-03-27 14:58 ` Peter Zijlstra
[not found] ` <8d193937-532f-959f-9b84-d911984508aa@web.de>
[not found] ` <941709b5-d940-42c9-5f31-7ed56e3e6151@web.de>
2023-03-27 12:28 ` [PATCH resent] drbd: Fix exception handling in nla_put_drbd_cfg_context() Christoph Böhmwalder
[not found] ` <83763b78-453d-de21-9b48-1c226afa13a0@web.de>
[not found] ` <57a97109-7a67-245b-8072-54aec3b5021d@web.de>
2023-03-27 21:37 ` [PATCH v2] selinux: Adjust implementation of security_get_bools() Paul Moore
2023-03-27 22:08 ` Paul Moore
[not found] ` <9e8bb69f-99e8-f204-6435-cc6e52816ebf@web.de>
2023-03-28 19:59 ` Paul Moore
[not found] ` <382bc6d8-7f75-822a-6c36-088b1d2f427a@web.de>
2023-03-29 14:19 ` Paul Moore
[not found] ` <5ed1bc78-77a1-8eb8-43f9-6005d7de49c8@web.de>
[not found] ` <9e3705dc-7a70-c584-916e-ae582c7667b6@web.de>
2023-03-28 8:30 ` [PATCH resent] clk: at91: sama7g5: Add two jump labels in sama7g5_pmc_setup() Nicolas Ferre
[not found] ` <7985ac57-5b33-e7df-f319-ad6ee0788e2c@web.de>
2023-03-28 22:02 ` Alexandre Belloni
[not found] ` <6ee3b703-2161-eacd-c12f-7fa3bedf82dc@web.de>
[not found] ` <49adf0c8-825a-018f-6d95-ce613944fc9b@web.de>
2023-03-28 23:21 ` [PATCH resent 0/2] md/raid: Adjustments for two function implementations Song Liu
[not found] ` <2fbfc20a-71ee-ddaa-19d8-7beed559b491@web.de>
2023-03-29 19:03 ` [0/2] " Song Liu
[not found] ` <b3cce5b3-2e68-180c-c293-74d4d9d4032c@web.de>
[not found] ` <2d125f3e-4de6-cfb4-2d21-6e1ec04bc412@web.de>
2023-04-03 3:35 ` [PATCH resent] cpufreq: sparc: Fix exception handling in two functions Viresh Kumar
[not found] ` <39342542-9353-6a7b-0aa9-f9c294b158cb@web.de>
2023-04-03 23:04 ` [PATCH] " Viresh Kumar
[not found] ` <68b1988b-987f-fa2b-111e-b1b42f9767ab@web.de>
2023-04-09 23:55 ` [PATCH v2] " Viresh Kumar
[not found] ` <f9f40c8a-a392-27e3-b19c-c8985a163159@web.de>
2023-04-11 3:30 ` Viresh Kumar [this message]
[not found] ` <e53bfa4f-c4b0-ee80-a64c-be8e9af76230@web.de>
2023-04-11 6:40 ` [v2] " Viresh Kumar
[not found] ` <8f785de5-ebe2-edd9-2155-f440acacc643@web.de>
[not found] ` <82aebf6c-47ac-9d17-2d11-6245f582338e@web.de>
2023-04-07 7:54 ` [PATCH] spi: atmel: Improve exception handling in atmel_spi_configure_dma() Nicolas Ferre
[not found] ` <01af2ec9-4758-1fe6-0d74-b30b95c3e9a5@web.de>
2023-04-09 9:59 ` [PATCH 0/2] IB/uverbs: Adjustments for create_qp() Leon Romanovsky
[not found] ` <d0e18bb1-afc4-8b6f-bb1c-b74b3bad908e@web.de>
2023-04-10 17:44 ` [PATCH] remoteproc: imx_dsp_rproc: Improve exception handling in imx_dsp_rproc_mbox_alloc() Mathieu Poirier
[not found] ` <f1eaec48-cabb-5fc6-942b-f1ef7af9bb57@web.de>
2023-05-16 15:20 ` [cocci] [PATCH] firmware: ti_sci: Fix exception handling in ti_sci_probe() Nishanth Menon
2023-05-17 6:43 ` Dan Carpenter
[not found] ` <72a7bfe2-6051-01b0-6c51-a0f8cc0c93a5@web.de>
[not found] ` <ecda8227-d89a-9c23-06b7-54f9d974af5e@web.de>
2024-01-05 17:42 ` [PATCH v2 0/4] powerpc/4xx: Adjustments for four function implementations Markus Elfring
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=20230411033048.zwsijlyiksjcmgcc@vireshk-i7 \
--to=viresh.kumar@linaro.org \
--cc=Markus.Elfring@web.de \
--cc=cocci@inria.fr \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael@kernel.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).