diff mbox

of/dynamic: Fix test for PPC_PSERIES

Message ID 1433410481-22611-1-git-send-email-geert+renesas@glider.be (mailing list archive)
State Not Applicable
Headers show

Commit Message

Geert Uytterhoeven June 4, 2015, 9:34 a.m. UTC
"IS_ENABLED(PPC_PSERIES)" always evaluates to false, as IS_ENABLED() is
supposed to be used with the full Kconfig symbol name, including the
"CONFIG_" prefix.

Add the missing "CONFIG_" prefix to fix this.

Fixes: a25095d451ece23b ("of: Move dynamic node fixups out of powerpc and into common code")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
Did this bug cause any breakage?
If yes, the fix should go to stable (for v3.17 and later).
---
 drivers/of/dynamic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Ellerman June 4, 2015, 10:57 a.m. UTC | #1
On Thu, 2015-04-06 at 09:34:41 UTC, Geert Uytterhoeven wrote:
> "IS_ENABLED(PPC_PSERIES)" always evaluates to false, as IS_ENABLED() is
> supposed to be used with the full Kconfig symbol name, including the
> "CONFIG_" prefix.
> 
> Add the missing "CONFIG_" prefix to fix this.
> 
> Fixes: a25095d451ece23b ("of: Move dynamic node fixups out of powerpc and into common code")
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---

> Did this bug cause any breakage?
> If yes, the fix should go to stable (for v3.17 and later).

Yikes. Not that I've heard of. But it's reasonably new so possibly it's not hit
distros that folks tend to run on those machines.

I'm also not clear how it would break, it could be subtle and we've not noticed.

Nathan might have more of an idea (on CC).

On my machine here everything that has an ibm,phandle also has a linux,phandle,
so we wouldn't hit that code path. But I'm not sure how representative that box
is.

cheers
Nathan Fontenot June 5, 2015, 12:43 a.m. UTC | #2
On 06/04/2015 05:57 AM, Michael Ellerman wrote:
> On Thu, 2015-04-06 at 09:34:41 UTC, Geert Uytterhoeven wrote:
>> "IS_ENABLED(PPC_PSERIES)" always evaluates to false, as IS_ENABLED() is
>> supposed to be used with the full Kconfig symbol name, including the
>> "CONFIG_" prefix.
>>
>> Add the missing "CONFIG_" prefix to fix this.
>>
>> Fixes: a25095d451ece23b ("of: Move dynamic node fixups out of powerpc and into common code")
>> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
>> ---
> 
>> Did this bug cause any breakage?
>> If yes, the fix should go to stable (for v3.17 and later).
> 
> Yikes. Not that I've heard of. But it's reasonably new so possibly it's not hit
> distros that folks tend to run on those machines.

I think we do have some distros that have picked this up.

> 
> I'm also not clear how it would break, it could be subtle and we've not noticed.
> 

The only place I can find that this might cause an issue is during device tree
updating that pseries does after a live migration or suspend/resume. When
removing or updating a device tree node we look up the node by ibm,phandle and
without this patch we wouldn't find these nodes.

I have not seen any issues because of this but I think pushing this to stable
would be good.

-Nathan
Grant Likely June 5, 2015, 1:44 a.m. UTC | #3
On Thu,  4 Jun 2015 20:57:32 +1000 (AEST)
, Michael Ellerman <mpe@ellerman.id.au>
 wrote:
> On Thu, 2015-04-06 at 09:34:41 UTC, Geert Uytterhoeven wrote:
> > "IS_ENABLED(PPC_PSERIES)" always evaluates to false, as IS_ENABLED() is
> > supposed to be used with the full Kconfig symbol name, including the
> > "CONFIG_" prefix.
> > 
> > Add the missing "CONFIG_" prefix to fix this.
> > 
> > Fixes: a25095d451ece23b ("of: Move dynamic node fixups out of powerpc and into common code")
> > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > ---
> 
> > Did this bug cause any breakage?
> > If yes, the fix should go to stable (for v3.17 and later).
> 
> Yikes. Not that I've heard of. But it's reasonably new so possibly it's not hit
> distros that folks tend to run on those machines.
> 
> I'm also not clear how it would break, it could be subtle and we've not noticed.
> 
> Nathan might have more of an idea (on CC).
> 
> On my machine here everything that has an ibm,phandle also has a linux,phandle,
> so we wouldn't hit that code path. But I'm not sure how representative that box
> is.
> 
> cheers

Still, an obvious bug. I've picked it up and marked for stable.

g.
diff mbox

Patch

diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c
index dee658de72b3b221..1901f8870591fe30 100644
--- a/drivers/of/dynamic.c
+++ b/drivers/of/dynamic.c
@@ -226,7 +226,7 @@  void __of_attach_node(struct device_node *np)
 	phandle = __of_get_property(np, "phandle", &sz);
 	if (!phandle)
 		phandle = __of_get_property(np, "linux,phandle", &sz);
-	if (IS_ENABLED(PPC_PSERIES) && !phandle)
+	if (IS_ENABLED(CONFIG_PPC_PSERIES) && !phandle)
 		phandle = __of_get_property(np, "ibm,phandle", &sz);
 	np->phandle = (phandle && (sz >= 4)) ? be32_to_cpup(phandle) : 0;