All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe
@ 2013-12-23 14:44 Fabio Estevam
  2013-12-23 14:44 ` [PATCH v3 2/2] regulator: anatop-regulator: Remove unneeded variable Fabio Estevam
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Fabio Estevam @ 2013-12-23 14:44 UTC (permalink / raw)
  To: broonie; +Cc: shawn.guo, Anson.Huang, linux-kernel, Fabio Estevam

From: Fabio Estevam <fabio.estevam@freescale.com>

Currently when of_get_parent() or syscon_node_to_regmap() fail 
'kfree(sreg->name)' is not called, which is incorrect.

Fix this by jumping to 'anatop_probe_end' instead.

While at it, make 'anatop_probe_end' to be executed only on the error path, so
that the code can be a bit easier to follow.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v2:
- Fix the error path for of_get_parent() or syscon_node_to_regmap().

 drivers/regulator/anatop-regulator.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/regulator/anatop-regulator.c b/drivers/regulator/anatop-regulator.c
index c734d09..88d95cd 100644
--- a/drivers/regulator/anatop-regulator.c
+++ b/drivers/regulator/anatop-regulator.c
@@ -132,12 +132,16 @@ static int anatop_regulator_probe(struct platform_device *pdev)
 	rdesc->owner = THIS_MODULE;
 
 	anatop_np = of_get_parent(np);
-	if (!anatop_np)
-		return -ENODEV;
+	if (!anatop_np) {
+		ret = -ENODEV;
+		goto anatop_probe_end;
+	}
 	sreg->anatop = syscon_node_to_regmap(anatop_np);
 	of_node_put(anatop_np);
-	if (IS_ERR(sreg->anatop))
-		return PTR_ERR(sreg->anatop);
+	if (IS_ERR(sreg->anatop)) {
+		ret = PTR_ERR(sreg->anatop);
+		goto anatop_probe_end;
+	}
 
 	ret = of_property_read_u32(np, "anatop-reg-offset",
 				   &sreg->control_reg);
@@ -210,9 +214,10 @@ static int anatop_regulator_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, rdev);
 
+	return 0;
+
 anatop_probe_end:
-	if (ret)
-		kfree(sreg->name);
+	kfree(sreg->name);
 
 	return ret;
 }
-- 
1.8.1.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3 2/2] regulator: anatop-regulator: Remove unneeded variable
  2013-12-23 14:44 [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe Fabio Estevam
@ 2013-12-23 14:44 ` Fabio Estevam
  2013-12-23 14:50 ` [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe Shawn Guo
  2013-12-24 13:03 ` Mark Brown
  2 siblings, 0 replies; 7+ messages in thread
From: Fabio Estevam @ 2013-12-23 14:44 UTC (permalink / raw)
  To: broonie; +Cc: shawn.guo, Anson.Huang, linux-kernel, Fabio Estevam

From: Fabio Estevam <fabio.estevam@freescale.com>

There is no need to create a local variable for accessing sreg->name.

Access it directly instead.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v2:
- None

 drivers/regulator/anatop-regulator.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/regulator/anatop-regulator.c b/drivers/regulator/anatop-regulator.c
index 88d95cd..cc545a0 100644
--- a/drivers/regulator/anatop-regulator.c
+++ b/drivers/regulator/anatop-regulator.c
@@ -226,9 +226,8 @@ static int anatop_regulator_remove(struct platform_device *pdev)
 {
 	struct regulator_dev *rdev = platform_get_drvdata(pdev);
 	struct anatop_regulator *sreg = rdev_get_drvdata(rdev);
-	const char *name = sreg->name;
 
-	kfree(name);
+	kfree(sreg->name);
 
 	return 0;
 }
-- 
1.8.1.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe
  2013-12-23 14:44 [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe Fabio Estevam
  2013-12-23 14:44 ` [PATCH v3 2/2] regulator: anatop-regulator: Remove unneeded variable Fabio Estevam
@ 2013-12-23 14:50 ` Shawn Guo
  2013-12-24 13:03 ` Mark Brown
  2 siblings, 0 replies; 7+ messages in thread
From: Shawn Guo @ 2013-12-23 14:50 UTC (permalink / raw)
  To: Fabio Estevam; +Cc: broonie, Anson.Huang, linux-kernel, Fabio Estevam

On Mon, Dec 23, 2013 at 12:44:40PM -0200, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
> 
> Currently when of_get_parent() or syscon_node_to_regmap() fail 
> 'kfree(sreg->name)' is not called, which is incorrect.
> 
> Fix this by jumping to 'anatop_probe_end' instead.
> 
> While at it, make 'anatop_probe_end' to be executed only on the error path, so
> that the code can be a bit easier to follow.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>

Acked-by: Shawn Guo <shawn.guo@linaro.org>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe
  2013-12-23 14:44 [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe Fabio Estevam
  2013-12-23 14:44 ` [PATCH v3 2/2] regulator: anatop-regulator: Remove unneeded variable Fabio Estevam
  2013-12-23 14:50 ` [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe Shawn Guo
@ 2013-12-24 13:03 ` Mark Brown
  2014-01-04  0:02   ` Dmitry Torokhov
  2 siblings, 1 reply; 7+ messages in thread
From: Mark Brown @ 2013-12-24 13:03 UTC (permalink / raw)
  To: Fabio Estevam; +Cc: shawn.guo, Anson.Huang, linux-kernel, Fabio Estevam

On Mon, Dec 23, 2013 at 12:44:40PM -0200, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
> 
> Currently when of_get_parent() or syscon_node_to_regmap() fail 
> 'kfree(sreg->name)' is not called, which is incorrect.

Applied both, thanks.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe
  2013-12-24 13:03 ` Mark Brown
@ 2014-01-04  0:02   ` Dmitry Torokhov
  2014-01-04 16:00     ` Fabio Estevam
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Torokhov @ 2014-01-04  0:02 UTC (permalink / raw)
  To: Mark Brown
  Cc: Fabio Estevam, shawn.guo, Anson.Huang, linux-kernel,
	Fabio Estevam

On Tue, Dec 24, 2013 at 01:03:57PM +0000, Mark Brown wrote:
> On Mon, Dec 23, 2013 at 12:44:40PM -0200, Fabio Estevam wrote:
> > From: Fabio Estevam <fabio.estevam@freescale.com>
> > 
> > Currently when of_get_parent() or syscon_node_to_regmap() fail 
> > 'kfree(sreg->name)' is not called, which is incorrect.
> 
> Applied both, thanks.

Sorry for being too later, but why are we making copy to begin with? It
is not like DT data will disappear later on.

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe
  2014-01-04  0:02   ` Dmitry Torokhov
@ 2014-01-04 16:00     ` Fabio Estevam
  2014-01-04 22:31       ` Dmitry Torokhov
  0 siblings, 1 reply; 7+ messages in thread
From: Fabio Estevam @ 2014-01-04 16:00 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Mark Brown, Shawn Guo, Anson.Huang@freescale.com, linux-kernel,
	Fabio Estevam

Hi Dmitry,

On Fri, Jan 3, 2014 at 10:02 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Tue, Dec 24, 2013 at 01:03:57PM +0000, Mark Brown wrote:
>> On Mon, Dec 23, 2013 at 12:44:40PM -0200, Fabio Estevam wrote:
>> > From: Fabio Estevam <fabio.estevam@freescale.com>
>> >
>> > Currently when of_get_parent() or syscon_node_to_regmap() fail
>> > 'kfree(sreg->name)' is not called, which is incorrect.
>>
>> Applied both, thanks.
>
> Sorry for being too later, but why are we making copy to begin with? It
> is not like DT data will disappear later on.

Which lines of code are you referring to, please?

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe
  2014-01-04 16:00     ` Fabio Estevam
@ 2014-01-04 22:31       ` Dmitry Torokhov
  0 siblings, 0 replies; 7+ messages in thread
From: Dmitry Torokhov @ 2014-01-04 22:31 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Mark Brown, Shawn Guo, Anson.Huang@freescale.com, linux-kernel,
	Fabio Estevam

On Sat, Jan 04, 2014 at 02:00:52PM -0200, Fabio Estevam wrote:
> Hi Dmitry,
> 
> On Fri, Jan 3, 2014 at 10:02 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
> > On Tue, Dec 24, 2013 at 01:03:57PM +0000, Mark Brown wrote:
> >> On Mon, Dec 23, 2013 at 12:44:40PM -0200, Fabio Estevam wrote:
> >> > From: Fabio Estevam <fabio.estevam@freescale.com>
> >> >
> >> > Currently when of_get_parent() or syscon_node_to_regmap() fail
> >> > 'kfree(sreg->name)' is not called, which is incorrect.
> >>
> >> Applied both, thanks.
> >
> > Sorry for being too later, but why are we making copy to begin with? It
> > is not like DT data will disappear later on.
> 
> Which lines of code are you referring to, please?

I am talking about this:

	sreg->name = kstrdup(of_get_property(np, "regulator-name", NULL),
			     GFP_KERNEL);

Whatis the reason for kstrdup? Can we simply say:

	sreg->name = of_get_property(np, "regulator-name", NULL);

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-01-04 22:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-23 14:44 [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe Fabio Estevam
2013-12-23 14:44 ` [PATCH v3 2/2] regulator: anatop-regulator: Remove unneeded variable Fabio Estevam
2013-12-23 14:50 ` [PATCH v3 1/2] regulator: anatop-regulator: Fix the error handling on probe Shawn Guo
2013-12-24 13:03 ` Mark Brown
2014-01-04  0:02   ` Dmitry Torokhov
2014-01-04 16:00     ` Fabio Estevam
2014-01-04 22:31       ` Dmitry Torokhov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.