diff mbox series

of: property: fw_devlink: Ignore interrupts property for some configs

Message ID 20210215224258.1231449-1-saravanak@google.com
State Not Applicable, archived
Headers show
Series of: property: fw_devlink: Ignore interrupts property for some configs | expand

Checks

Context Check Description
robh/checkpatch warning total: 0 errors, 1 warnings, 9 lines checked

Commit Message

Saravana Kannan Feb. 15, 2021, 10:42 p.m. UTC
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/20210213185422.GA195733@roeck-us.net/
Fixes: 4104ca776ba3 ("of: property: Add fw_devlink support for interrupts")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Saravana Kannan <saravanak@google.com>
---
Greg/Rob,

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

-Saravana

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

Comments

Guenter Roeck Feb. 16, 2021, 3:15 a.m. UTC | #1
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/20210213185422.GA195733@roeck-us.net/
> Fixes: 4104ca776ba3 ("of: property: Add fw_devlink support for interrupts")
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Saravana Kannan <saravanak@google.com>

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

Tested-by: Guenter Roeck <linux@roeck-us.net>

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
>
Enrico Weigelt, metux IT consult Feb. 16, 2021, 8:20 p.m. UTC | #2
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
Saravana Kannan Feb. 16, 2021, 8:22 p.m. UTC | #3
On Tue, Feb 16, 2021 at 12:20 PM Enrico Weigelt, metux IT consult
<lkml@metux.net> 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
Rob Herring Feb. 17, 2021, 7:42 p.m. UTC | #4
On Mon, Feb 15, 2021 at 4:43 PM Saravana Kannan <saravanak@google.com> 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/20210213185422.GA195733@roeck-us.net/
> Fixes: 4104ca776ba3 ("of: property: Add fw_devlink support for interrupts")
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Saravana Kannan <saravanak@google.com>
> ---
> Greg/Rob,
>
> I believe this needs to land on driver-core-next.

Acked-by: Rob Herring <robh@kernel.org>
diff mbox series

Patch

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;