2021-02-15 22:45:18

by Saravana Kannan

[permalink] [raw]
Subject: [PATCH] of: property: fw_devlink: Ignore interrupts property for some configs

When CONFIG_OF_IRQ is not defined, it doesn't make sense to parse
interrupts property.

Also, parsing and tracking interrupts property breaks some PPC
devices[1]. But none of the IRQ drivers in PPC seem ready to be
converted to a proper platform (or any bus) driver. So, there's not much
of a point in tracking the interrupts property for CONFIG_PPC. So, let's
stop parsing interrupts for CONFIG_PPC.

[1] - https://lore.kernel.org/lkml/[email protected]/
Fixes: 4104ca776ba3 ("of: property: Add fw_devlink support for interrupts")
Reported-by: Guenter Roeck <[email protected]>
Signed-off-by: Saravana Kannan <[email protected]>
---
Greg/Rob,

I believe this needs to land on driver-core-next.

-Saravana

drivers/of/property.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/of/property.c b/drivers/of/property.c
index 79b68519fe30..5036a362f52e 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -1300,6 +1300,9 @@ static struct device_node *parse_interrupts(struct device_node *np,
{
struct of_phandle_args sup_args;

+ if (!IS_ENABLED(CONFIG_OF_IRQ) || IS_ENABLED(CONFIG_PPC))
+ return NULL;
+
if (strcmp(prop_name, "interrupts") &&
strcmp(prop_name, "interrupts-extended"))
return NULL;
--
2.30.0.478.g8a0d178c01-goog


2021-02-16 03:17:31

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] of: property: fw_devlink: Ignore interrupts property for some configs

On Mon, Feb 15, 2021 at 02:42:58PM -0800, Saravana Kannan wrote:
> When CONFIG_OF_IRQ is not defined, it doesn't make sense to parse
> interrupts property.
>
> Also, parsing and tracking interrupts property breaks some PPC
> devices[1]. But none of the IRQ drivers in PPC seem ready to be
> converted to a proper platform (or any bus) driver. So, there's not much
> of a point in tracking the interrupts property for CONFIG_PPC. So, let's
> stop parsing interrupts for CONFIG_PPC.
>
> [1] - https://lore.kernel.org/lkml/[email protected]/
> Fixes: 4104ca776ba3 ("of: property: Add fw_devlink support for interrupts")
> Reported-by: Guenter Roeck <[email protected]>
> Signed-off-by: Saravana Kannan <[email protected]>

That does the trick, at least for my test cases.

Tested-by: Guenter Roeck <[email protected]>

Guenter

> ---
> Greg/Rob,
>
> I believe this needs to land on driver-core-next.
>
> -Saravana
>
> drivers/of/property.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/of/property.c b/drivers/of/property.c
> index 79b68519fe30..5036a362f52e 100644
> --- a/drivers/of/property.c
> +++ b/drivers/of/property.c
> @@ -1300,6 +1300,9 @@ static struct device_node *parse_interrupts(struct device_node *np,
> {
> struct of_phandle_args sup_args;
>
> + if (!IS_ENABLED(CONFIG_OF_IRQ) || IS_ENABLED(CONFIG_PPC))
> + return NULL;
> +
> if (strcmp(prop_name, "interrupts") &&
> strcmp(prop_name, "interrupts-extended"))
> return NULL;
> --
> 2.30.0.478.g8a0d178c01-goog
>

2021-02-16 20:25:36

by Saravana Kannan

[permalink] [raw]
Subject: Re: [PATCH] of: property: fw_devlink: Ignore interrupts property for some configs

On Tue, Feb 16, 2021 at 12:20 PM Enrico Weigelt, metux IT consult
<[email protected]> wrote:
>
> On 15.02.21 23:42, Saravana Kannan wrote:
>
> Hi,
>
> > diff --git a/drivers/of/property.c b/drivers/of/property.c
> > index 79b68519fe30..5036a362f52e 100644
> > --- a/drivers/of/property.c
> > +++ b/drivers/of/property.c
> > @@ -1300,6 +1300,9 @@ static struct device_node *parse_interrupts(struct device_node *np,
> > {
> > struct of_phandle_args sup_args;
> >
> > + if (!IS_ENABLED(CONFIG_OF_IRQ) || IS_ENABLED(CONFIG_PPC))
> > + return NULL;
> > +
> > if (strcmp(prop_name, "interrupts") &&
> > strcmp(prop_name, "interrupts-extended"))
> > return NULL;
>
> wouldn't it be better to #ifdef-out the whole code in this case ?

No, #ifdef is not preferred. That's why we even have the IS_ENABLED()
macros in the first place. The compiled will optimize out the code.

-Saravana

Subject: Re: [PATCH] of: property: fw_devlink: Ignore interrupts property for some configs

On 15.02.21 23:42, Saravana Kannan wrote:

Hi,

> diff --git a/drivers/of/property.c b/drivers/of/property.c
> index 79b68519fe30..5036a362f52e 100644
> --- a/drivers/of/property.c
> +++ b/drivers/of/property.c
> @@ -1300,6 +1300,9 @@ static struct device_node *parse_interrupts(struct device_node *np,
> {
> struct of_phandle_args sup_args;
>
> + if (!IS_ENABLED(CONFIG_OF_IRQ) || IS_ENABLED(CONFIG_PPC))
> + return NULL;
> +
> if (strcmp(prop_name, "interrupts") &&
> strcmp(prop_name, "interrupts-extended"))
> return NULL;

wouldn't it be better to #ifdef-out the whole code in this case ?


--mtx


--
---
Hinweis: unverschlüsselte E-Mails können leicht abgehört und manipuliert
werden ! Für eine vertrauliche Kommunikation senden Sie bitte ihren
GPG/PGP-Schlüssel zu.
---
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
[email protected] -- +49-151-27565287

2021-02-17 21:20:36

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH] of: property: fw_devlink: Ignore interrupts property for some configs

On Mon, Feb 15, 2021 at 4:43 PM Saravana Kannan <[email protected]> wrote:
>
> When CONFIG_OF_IRQ is not defined, it doesn't make sense to parse
> interrupts property.
>
> Also, parsing and tracking interrupts property breaks some PPC
> devices[1]. But none of the IRQ drivers in PPC seem ready to be
> converted to a proper platform (or any bus) driver. So, there's not much
> of a point in tracking the interrupts property for CONFIG_PPC. So, let's
> stop parsing interrupts for CONFIG_PPC.
>
> [1] - https://lore.kernel.org/lkml/[email protected]/
> Fixes: 4104ca776ba3 ("of: property: Add fw_devlink support for interrupts")
> Reported-by: Guenter Roeck <[email protected]>
> Signed-off-by: Saravana Kannan <[email protected]>
> ---
> Greg/Rob,
>
> I believe this needs to land on driver-core-next.

Acked-by: Rob Herring <[email protected]>