2015-06-04 09:34:50

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH] of/dynamic: Fix test for PPC_PSERIES

"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 <[email protected]>
---
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(-)

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;

--
1.9.1


2015-06-04 10:57:55

by Michael Ellerman

[permalink] [raw]
Subject: Re: of/dynamic: Fix test for PPC_PSERIES

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 <[email protected]>
> ---

> 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

2015-06-05 00:43:27

by Nathan Fontenot

[permalink] [raw]
Subject: Re: of/dynamic: Fix test for PPC_PSERIES

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 <[email protected]>
>> ---
>
>> 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

2015-06-05 01:44:58

by Grant Likely

[permalink] [raw]
Subject: Re: of/dynamic: Fix test for PPC_PSERIES

On Thu, 4 Jun 2015 20:57:32 +1000 (AEST)
, Michael Ellerman <[email protected]>
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 <[email protected]>
> > ---
>
> > 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.