All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] soc: imx: gpcv2: fix regulator deferred probe
@ 2017-08-02 19:51 ` Stefan Agner
  0 siblings, 0 replies; 14+ messages in thread
From: Stefan Agner @ 2017-08-02 19:51 UTC (permalink / raw)
  To: shawnguo, kernel
  Cc: Stefan Agner, Fabio Estevam, Andrey Smirnov, linux-arm-kernel,
	linux-kernel

If a regulator requests a deferred probe, the power domain gets
initialized twice. This leads to a list double add (without
list debugging the kernel hangs due to the double add later):

  WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
  list_add double add: new=c1229754, prev=c12383b4, next=c1229754.

Initialize the power domain after we get the regulator. Also do
not print an error in case the regulator defers probing.

Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
Hi Shawn,

Since this leads to a Kernel hang in v4.13-rc3, can you get this
into v4.13 still?

--
Stefan

 drivers/soc/imx/gpcv2.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c
index 3039072911a5..afc7ecc3c187 100644
--- a/drivers/soc/imx/gpcv2.c
+++ b/drivers/soc/imx/gpcv2.c
@@ -200,16 +200,11 @@ static int imx7_pgc_domain_probe(struct platform_device *pdev)
 
 	domain->dev = &pdev->dev;
 
-	ret = pm_genpd_init(&domain->genpd, NULL, true);
-	if (ret) {
-		dev_err(domain->dev, "Failed to init power domain\n");
-		return ret;
-	}
-
 	domain->regulator = devm_regulator_get_optional(domain->dev, "power");
 	if (IS_ERR(domain->regulator)) {
 		if (PTR_ERR(domain->regulator) != -ENODEV) {
-			dev_err(domain->dev, "Failed to get domain's regulator\n");
+			if (PTR_ERR(domain->regulator) != -EPROBE_DEFER)
+				dev_err(domain->dev, "Failed to get domain's regulator\n");
 			return PTR_ERR(domain->regulator);
 		}
 	} else {
@@ -217,6 +212,12 @@ static int imx7_pgc_domain_probe(struct platform_device *pdev)
 				      domain->voltage, domain->voltage);
 	}
 
+	ret = pm_genpd_init(&domain->genpd, NULL, true);
+	if (ret) {
+		dev_err(domain->dev, "Failed to init power domain\n");
+		return ret;
+	}
+
 	ret = of_genpd_add_provider_simple(domain->dev->of_node,
 					   &domain->genpd);
 	if (ret) {
-- 
2.13.3

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

* [PATCH] soc: imx: gpcv2: fix regulator deferred probe
@ 2017-08-02 19:51 ` Stefan Agner
  0 siblings, 0 replies; 14+ messages in thread
From: Stefan Agner @ 2017-08-02 19:51 UTC (permalink / raw)
  To: linux-arm-kernel

If a regulator requests a deferred probe, the power domain gets
initialized twice. This leads to a list double add (without
list debugging the kernel hangs due to the double add later):

  WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
  list_add double add: new=c1229754, prev=c12383b4, next=c1229754.

Initialize the power domain after we get the regulator. Also do
not print an error in case the regulator defers probing.

Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-kernel at vger.kernel.org
Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
Hi Shawn,

Since this leads to a Kernel hang in v4.13-rc3, can you get this
into v4.13 still?

--
Stefan

 drivers/soc/imx/gpcv2.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c
index 3039072911a5..afc7ecc3c187 100644
--- a/drivers/soc/imx/gpcv2.c
+++ b/drivers/soc/imx/gpcv2.c
@@ -200,16 +200,11 @@ static int imx7_pgc_domain_probe(struct platform_device *pdev)
 
 	domain->dev = &pdev->dev;
 
-	ret = pm_genpd_init(&domain->genpd, NULL, true);
-	if (ret) {
-		dev_err(domain->dev, "Failed to init power domain\n");
-		return ret;
-	}
-
 	domain->regulator = devm_regulator_get_optional(domain->dev, "power");
 	if (IS_ERR(domain->regulator)) {
 		if (PTR_ERR(domain->regulator) != -ENODEV) {
-			dev_err(domain->dev, "Failed to get domain's regulator\n");
+			if (PTR_ERR(domain->regulator) != -EPROBE_DEFER)
+				dev_err(domain->dev, "Failed to get domain's regulator\n");
 			return PTR_ERR(domain->regulator);
 		}
 	} else {
@@ -217,6 +212,12 @@ static int imx7_pgc_domain_probe(struct platform_device *pdev)
 				      domain->voltage, domain->voltage);
 	}
 
+	ret = pm_genpd_init(&domain->genpd, NULL, true);
+	if (ret) {
+		dev_err(domain->dev, "Failed to init power domain\n");
+		return ret;
+	}
+
 	ret = of_genpd_add_provider_simple(domain->dev->of_node,
 					   &domain->genpd);
 	if (ret) {
-- 
2.13.3

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

* Re: [PATCH] soc: imx: gpcv2: fix regulator deferred probe
  2017-08-02 19:51 ` Stefan Agner
@ 2017-08-03  2:50   ` Shawn Guo
  -1 siblings, 0 replies; 14+ messages in thread
From: Shawn Guo @ 2017-08-03  2:50 UTC (permalink / raw)
  To: Stefan Agner
  Cc: kernel, Fabio Estevam, Andrey Smirnov, linux-arm-kernel, linux-kernel

On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
> If a regulator requests a deferred probe, the power domain gets
> initialized twice. This leads to a list double add (without
> list debugging the kernel hangs due to the double add later):
> 
>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
> 
> Initialize the power domain after we get the regulator. Also do
> not print an error in case the regulator defers probing.
> 
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
> Signed-off-by: Stefan Agner <stefan@agner.ch>
> ---
> Hi Shawn,
> 
> Since this leads to a Kernel hang in v4.13-rc3, can you get this
> into v4.13 still?

Sure.  But before doing that, I would like to get an ACK from Andrey on
this fix.

Shawn

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

* [PATCH] soc: imx: gpcv2: fix regulator deferred probe
@ 2017-08-03  2:50   ` Shawn Guo
  0 siblings, 0 replies; 14+ messages in thread
From: Shawn Guo @ 2017-08-03  2:50 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
> If a regulator requests a deferred probe, the power domain gets
> initialized twice. This leads to a list double add (without
> list debugging the kernel hangs due to the double add later):
> 
>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
> 
> Initialize the power domain after we get the regulator. Also do
> not print an error in case the regulator defers probing.
> 
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
> Signed-off-by: Stefan Agner <stefan@agner.ch>
> ---
> Hi Shawn,
> 
> Since this leads to a Kernel hang in v4.13-rc3, can you get this
> into v4.13 still?

Sure.  But before doing that, I would like to get an ACK from Andrey on
this fix.

Shawn

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

* Re: [PATCH] soc: imx: gpcv2: fix regulator deferred probe
  2017-08-02 19:51 ` Stefan Agner
@ 2017-08-03  7:08   ` Andrey Smirnov
  -1 siblings, 0 replies; 14+ messages in thread
From: Andrey Smirnov @ 2017-08-03  7:08 UTC (permalink / raw)
  To: Stefan Agner
  Cc: Shawn Guo, Sascha Hauer, Fabio Estevam, linux-arm-kernel, linux-kernel

On Wed, Aug 2, 2017 at 12:51 PM, Stefan Agner <stefan@agner.ch> wrote:
> If a regulator requests a deferred probe, the power domain gets
> initialized twice. This leads to a list double add (without
> list debugging the kernel hangs due to the double add later):
>
>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
>
> Initialize the power domain after we get the regulator. Also do
> not print an error in case the regulator defers probing.
>
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
> Signed-off-by: Stefan Agner <stefan@agner.ch>

As the author of original bug:

Acked-by: Andrey Smirnov <andrew.smirnov@gmail.com>

I also went ahead and tested PCIe on my SabreSD with Intel Gigabit adapter, so

Tested-by: Andrey Smirnov <andrew.smirnov@gmail.com>

Thanks for debugging and fixing this!

Andrey Smirnov

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

* [PATCH] soc: imx: gpcv2: fix regulator deferred probe
@ 2017-08-03  7:08   ` Andrey Smirnov
  0 siblings, 0 replies; 14+ messages in thread
From: Andrey Smirnov @ 2017-08-03  7:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Aug 2, 2017 at 12:51 PM, Stefan Agner <stefan@agner.ch> wrote:
> If a regulator requests a deferred probe, the power domain gets
> initialized twice. This leads to a list double add (without
> list debugging the kernel hangs due to the double add later):
>
>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
>
> Initialize the power domain after we get the regulator. Also do
> not print an error in case the regulator defers probing.
>
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
> Signed-off-by: Stefan Agner <stefan@agner.ch>

As the author of original bug:

Acked-by: Andrey Smirnov <andrew.smirnov@gmail.com>

I also went ahead and tested PCIe on my SabreSD with Intel Gigabit adapter, so

Tested-by: Andrey Smirnov <andrew.smirnov@gmail.com>

Thanks for debugging and fixing this!

Andrey Smirnov

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

* Re: [PATCH] soc: imx: gpcv2: fix regulator deferred probe
  2017-08-02 19:51 ` Stefan Agner
@ 2017-08-05  3:13   ` Shawn Guo
  -1 siblings, 0 replies; 14+ messages in thread
From: Shawn Guo @ 2017-08-05  3:13 UTC (permalink / raw)
  To: Stefan Agner
  Cc: kernel, Fabio Estevam, Andrey Smirnov, linux-arm-kernel, linux-kernel

On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
> If a regulator requests a deferred probe, the power domain gets
> initialized twice. This leads to a list double add (without
> list debugging the kernel hangs due to the double add later):
> 
>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
> 
> Initialize the power domain after we get the regulator. Also do
> not print an error in case the regulator defers probing.
> 
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
> Signed-off-by: Stefan Agner <stefan@agner.ch>

Applied, thanks.

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

* [PATCH] soc: imx: gpcv2: fix regulator deferred probe
@ 2017-08-05  3:13   ` Shawn Guo
  0 siblings, 0 replies; 14+ messages in thread
From: Shawn Guo @ 2017-08-05  3:13 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
> If a regulator requests a deferred probe, the power domain gets
> initialized twice. This leads to a list double add (without
> list debugging the kernel hangs due to the double add later):
> 
>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
> 
> Initialize the power domain after we get the regulator. Also do
> not print an error in case the regulator defers probing.
> 
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
> Signed-off-by: Stefan Agner <stefan@agner.ch>

Applied, thanks.

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

* Re: [PATCH] soc: imx: gpcv2: fix regulator deferred probe
  2017-08-05  3:13   ` Shawn Guo
@ 2017-08-14  5:12     ` Stefan Agner
  -1 siblings, 0 replies; 14+ messages in thread
From: Stefan Agner @ 2017-08-14  5:12 UTC (permalink / raw)
  To: Shawn Guo
  Cc: kernel, Fabio Estevam, Andrey Smirnov, linux-arm-kernel, linux-kernel

Hi Shawn,

On 2017-08-04 20:13, Shawn Guo wrote:
> On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
>> If a regulator requests a deferred probe, the power domain gets
>> initialized twice. This leads to a list double add (without
>> list debugging the kernel hangs due to the double add later):
>>
>>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
>>
>> Initialize the power domain after we get the regulator. Also do
>> not print an error in case the regulator defers probing.
>>
>> Cc: Fabio Estevam <fabio.estevam@nxp.com>
>> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: linux-kernel@vger.kernel.org
>> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
>> Signed-off-by: Stefan Agner <stefan@agner.ch>
> 
> Applied, thanks.

As of 4.13-rc5 this did not make it upstream yet, I guess still on its
way?

--
Stefan

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

* [PATCH] soc: imx: gpcv2: fix regulator deferred probe
@ 2017-08-14  5:12     ` Stefan Agner
  0 siblings, 0 replies; 14+ messages in thread
From: Stefan Agner @ 2017-08-14  5:12 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Shawn,

On 2017-08-04 20:13, Shawn Guo wrote:
> On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
>> If a regulator requests a deferred probe, the power domain gets
>> initialized twice. This leads to a list double add (without
>> list debugging the kernel hangs due to the double add later):
>>
>>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
>>
>> Initialize the power domain after we get the regulator. Also do
>> not print an error in case the regulator defers probing.
>>
>> Cc: Fabio Estevam <fabio.estevam@nxp.com>
>> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
>> Cc: linux-arm-kernel at lists.infradead.org
>> Cc: linux-kernel at vger.kernel.org
>> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
>> Signed-off-by: Stefan Agner <stefan@agner.ch>
> 
> Applied, thanks.

As of 4.13-rc5 this did not make it upstream yet, I guess still on its
way?

--
Stefan

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

* Re: [PATCH] soc: imx: gpcv2: fix regulator deferred probe
  2017-08-14  5:12     ` Stefan Agner
@ 2017-08-14  5:35       ` Shawn Guo
  -1 siblings, 0 replies; 14+ messages in thread
From: Shawn Guo @ 2017-08-14  5:35 UTC (permalink / raw)
  To: Stefan Agner, arm
  Cc: kernel, Fabio Estevam, Andrey Smirnov, linux-arm-kernel, linux-kernel

On Sun, Aug 13, 2017 at 10:12:13PM -0700, Stefan Agner wrote:
> Hi Shawn,
> 
> On 2017-08-04 20:13, Shawn Guo wrote:
> > On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
> >> If a regulator requests a deferred probe, the power domain gets
> >> initialized twice. This leads to a list double add (without
> >> list debugging the kernel hangs due to the double add later):
> >>
> >>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
> >>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
> >>
> >> Initialize the power domain after we get the regulator. Also do
> >> not print an error in case the regulator defers probing.
> >>
> >> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> >> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
> >> Cc: linux-arm-kernel@lists.infradead.org
> >> Cc: linux-kernel@vger.kernel.org
> >> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
> >> Signed-off-by: Stefan Agner <stefan@agner.ch>
> > 
> > Applied, thanks.
> 
> As of 4.13-rc5 this did not make it upstream yet, I guess still on its
> way?

Yes, Stefan. It's on the way to arm-soc [1], but not yet responded.

Shawn

[1] https://www.spinics.net/lists/arm-kernel/msg598634.html

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

* [PATCH] soc: imx: gpcv2: fix regulator deferred probe
@ 2017-08-14  5:35       ` Shawn Guo
  0 siblings, 0 replies; 14+ messages in thread
From: Shawn Guo @ 2017-08-14  5:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Sun, Aug 13, 2017 at 10:12:13PM -0700, Stefan Agner wrote:
> Hi Shawn,
> 
> On 2017-08-04 20:13, Shawn Guo wrote:
> > On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
> >> If a regulator requests a deferred probe, the power domain gets
> >> initialized twice. This leads to a list double add (without
> >> list debugging the kernel hangs due to the double add later):
> >>
> >>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
> >>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
> >>
> >> Initialize the power domain after we get the regulator. Also do
> >> not print an error in case the regulator defers probing.
> >>
> >> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> >> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
> >> Cc: linux-arm-kernel at lists.infradead.org
> >> Cc: linux-kernel at vger.kernel.org
> >> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
> >> Signed-off-by: Stefan Agner <stefan@agner.ch>
> > 
> > Applied, thanks.
> 
> As of 4.13-rc5 this did not make it upstream yet, I guess still on its
> way?

Yes, Stefan. It's on the way to arm-soc [1], but not yet responded.

Shawn

[1] https://www.spinics.net/lists/arm-kernel/msg598634.html

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

* Re: [PATCH] soc: imx: gpcv2: fix regulator deferred probe
  2017-08-14  5:35       ` Shawn Guo
@ 2017-08-15 15:36         ` Arnd Bergmann
  -1 siblings, 0 replies; 14+ messages in thread
From: Arnd Bergmann @ 2017-08-15 15:36 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Stefan Agner, arm-soc, Sascha Hauer, Fabio Estevam,
	Andrey Smirnov, Linux ARM, Linux Kernel Mailing List

On Mon, Aug 14, 2017 at 7:35 AM, Shawn Guo <shawnguo@kernel.org> wrote:
> On Sun, Aug 13, 2017 at 10:12:13PM -0700, Stefan Agner wrote:
>> Hi Shawn,
>>
>> On 2017-08-04 20:13, Shawn Guo wrote:
>> > On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
>> >> If a regulator requests a deferred probe, the power domain gets
>> >> initialized twice. This leads to a list double add (without
>> >> list debugging the kernel hangs due to the double add later):
>> >>
>> >>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>> >>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
>> >>
>> >> Initialize the power domain after we get the regulator. Also do
>> >> not print an error in case the regulator defers probing.
>> >>
>> >> Cc: Fabio Estevam <fabio.estevam@nxp.com>
>> >> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
>> >> Cc: linux-arm-kernel@lists.infradead.org
>> >> Cc: linux-kernel@vger.kernel.org
>> >> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
>> >> Signed-off-by: Stefan Agner <stefan@agner.ch>
>> >
>> > Applied, thanks.
>>
>> As of 4.13-rc5 this did not make it upstream yet, I guess still on its
>> way?
>
> Yes, Stefan. It's on the way to arm-soc [1], but not yet responded.
>
> Shawn
>
> [1] https://www.spinics.net/lists/arm-kernel/msg598634.html

Merged into arm-soc now with Shawn's pull request.

      Arnd

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

* [PATCH] soc: imx: gpcv2: fix regulator deferred probe
@ 2017-08-15 15:36         ` Arnd Bergmann
  0 siblings, 0 replies; 14+ messages in thread
From: Arnd Bergmann @ 2017-08-15 15:36 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Aug 14, 2017 at 7:35 AM, Shawn Guo <shawnguo@kernel.org> wrote:
> On Sun, Aug 13, 2017 at 10:12:13PM -0700, Stefan Agner wrote:
>> Hi Shawn,
>>
>> On 2017-08-04 20:13, Shawn Guo wrote:
>> > On Wed, Aug 02, 2017 at 12:51:29PM -0700, Stefan Agner wrote:
>> >> If a regulator requests a deferred probe, the power domain gets
>> >> initialized twice. This leads to a list double add (without
>> >> list debugging the kernel hangs due to the double add later):
>> >>
>> >>   WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
>> >>   list_add double add: new=c1229754, prev=c12383b4, next=c1229754.
>> >>
>> >> Initialize the power domain after we get the regulator. Also do
>> >> not print an error in case the regulator defers probing.
>> >>
>> >> Cc: Fabio Estevam <fabio.estevam@nxp.com>
>> >> Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
>> >> Cc: linux-arm-kernel at lists.infradead.org
>> >> Cc: linux-kernel at vger.kernel.org
>> >> Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
>> >> Signed-off-by: Stefan Agner <stefan@agner.ch>
>> >
>> > Applied, thanks.
>>
>> As of 4.13-rc5 this did not make it upstream yet, I guess still on its
>> way?
>
> Yes, Stefan. It's on the way to arm-soc [1], but not yet responded.
>
> Shawn
>
> [1] https://www.spinics.net/lists/arm-kernel/msg598634.html

Merged into arm-soc now with Shawn's pull request.

      Arnd

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

end of thread, other threads:[~2017-08-15 15:36 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-02 19:51 [PATCH] soc: imx: gpcv2: fix regulator deferred probe Stefan Agner
2017-08-02 19:51 ` Stefan Agner
2017-08-03  2:50 ` Shawn Guo
2017-08-03  2:50   ` Shawn Guo
2017-08-03  7:08 ` Andrey Smirnov
2017-08-03  7:08   ` Andrey Smirnov
2017-08-05  3:13 ` Shawn Guo
2017-08-05  3:13   ` Shawn Guo
2017-08-14  5:12   ` Stefan Agner
2017-08-14  5:12     ` Stefan Agner
2017-08-14  5:35     ` Shawn Guo
2017-08-14  5:35       ` Shawn Guo
2017-08-15 15:36       ` Arnd Bergmann
2017-08-15 15:36         ` Arnd Bergmann

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.