2008-02-25 21:45:37

by Anton Vorontsov

[permalink] [raw]
Subject: [PATCH 1/2] [W1] ds1wm: should check for IS_ERR(clk) instead of NULL

On the error condition clk_get() returns ERR_PTR(..), so checking
for NULL doesn't work. ds1wm module causes a kernel oops when ds1wm
clock isn't registered.

This patch converts NULL check to IS_ERR(), plus uses PTR_ERR()
for the return code.

Signed-off-by: Anton Vorontsov <[email protected]>
---
drivers/w1/masters/ds1wm.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/w1/masters/ds1wm.c b/drivers/w1/masters/ds1wm.c
index 688e435..78a14da 100644
--- a/drivers/w1/masters/ds1wm.c
+++ b/drivers/w1/masters/ds1wm.c
@@ -17,6 +17,7 @@
#include <linux/pm.h>
#include <linux/platform_device.h>
#include <linux/clk.h>
+#include <linux/err.h>
#include <linux/delay.h>
#include <linux/ds1wm.h>

@@ -374,8 +375,8 @@ static int ds1wm_probe(struct platform_device *pdev)
goto err1;

ds1wm_data->clk = clk_get(&pdev->dev, "ds1wm");
- if (!ds1wm_data->clk) {
- ret = -ENOENT;
+ if (IS_ERR(ds1wm_data->clk)) {
+ ret = PTR_ERR(ds1wm_data->clk);
goto err2;
}

--
1.5.4.3


2008-02-25 22:27:56

by Evgeniy Polyakov

[permalink] [raw]
Subject: Re: [PATCH 1/2] [W1] ds1wm: should check for IS_ERR(clk) instead of NULL

Hi Anton.

On Tue, Feb 26, 2008 at 12:24:26AM +0300, Anton Vorontsov ([email protected]) wrote:
> On the error condition clk_get() returns ERR_PTR(..), so checking
> for NULL doesn't work. ds1wm module causes a kernel oops when ds1wm
> clock isn't registered.
>
> This patch converts NULL check to IS_ERR(), plus uses PTR_ERR()
> for the return code.
>
> Signed-off-by: Anton Vorontsov <[email protected]>

Both patches look good, thanks Anton.

Andrew, please merge them and add my ack if needed.
Thank you.

--
Evgeniy Polyakov