* [PATCH] devfreq: correctly check failed allocation
@ 2015-10-19 14:26 Insu Yun
0 siblings, 0 replies; 2+ messages in thread
From: Insu Yun @ 2015-10-19 14:26 UTC (permalink / raw)
To: myungjoo.ham, kyungmin.park, linux-pm, linux-kernel
Cc: taesoo, yeongjin.jang, insu, changwoo, Insu Yun
Since devm_kzalloc can be failed in memory pressure,
check return value and handle error.
Signed-off-by: Insu Yun <wuninsu@gmail.com>
---
drivers/devfreq/devfreq.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
index ca1b362..814089f 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -482,9 +482,23 @@ struct devfreq *devfreq_add_device(struct device *dev,
devfreq->profile->max_state *
devfreq->profile->max_state,
GFP_KERNEL);
+ if (!devfreq->trans_table) {
+ dev_err(dev, "%s: Unable to create transition table for the device\n",
+ __func__);
+ err = -ENOMEM;
+ goto err_dev;
+ }
+
devfreq->time_in_state = devm_kzalloc(dev, sizeof(unsigned int) *
devfreq->profile->max_state,
GFP_KERNEL);
+ if (!devfreq->time_in_state) {
+ dev_err(dev, "%s: Unable to create state for the device\n",
+ __func__);
+ err = -ENOMEM;
+ goto err_dev;
+ }
+
devfreq->last_stat_updated = jiffies;
dev_set_name(&devfreq->dev, "%s", dev_name(dev));
--
1.9.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] devfreq: correctly check failed allocation
@ 2015-10-20 0:49 MyungJoo Ham
0 siblings, 0 replies; 2+ messages in thread
From: MyungJoo Ham @ 2015-10-20 0:49 UTC (permalink / raw)
To: Insu Yun, 박경민, linux-pm@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: taesoo@gatech.edu, yeongjin.jang@gatech.edu, insu@gatech.edu,
changwoo@gatech.edu
>Since devm_kzalloc can be failed in memory pressure,
>check return value and handle error.
>
>Signed-off-by: Insu Yun <wuninsu@gmail.com>
>---
> drivers/devfreq/devfreq.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
>diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
>index ca1b362..814089f 100644
>--- a/drivers/devfreq/devfreq.c
>+++ b/drivers/devfreq/devfreq.c
>@@ -482,9 +482,23 @@ struct devfreq *devfreq_add_device(struct device *dev,
> devfreq->profile->max_state *
> devfreq->profile->max_state,
> GFP_KERNEL);
>+ if (!devfreq->trans_table) {
>+ dev_err(dev, "%s: Unable to create transition table for the device\n",
>+ __func__);
>+ err = -ENOMEM;
>+ goto err_dev;
>+ }
>+
I don't see a label 'err_dev' in devfreq.c
And please note that you are under a mutex lock here as well; you must unlock it before returning.
For devfreq.c of most recent release candidate, please refer to
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/devfreq/devfreq.c?id=7379047d5585187d1288486d4627873170d0005a
You don't seem to be based on a recent RC as well.
Cheers,
MyungJoo
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-10-20 0:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-20 0:49 [PATCH] devfreq: correctly check failed allocation MyungJoo Ham
-- strict thread matches above, loose matches on Subject: below --
2015-10-19 14:26 Insu Yun
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox