public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* 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
* [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

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