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
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
>
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
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
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]>