Re: [PATCH] of: make for_each_property_of_node() available to to !OF

From: Geert Uytterhoeven
Date: Tue Mar 05 2024 - 03:32:27 EST


Hi Bartosz,

On Sun, Mar 3, 2024 at 11:49 AM Bartosz Golaszewski <brgl@xxxxxxxx> wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
>
> for_each_property_of_node() is a macro and so doesn't have a stub inline
> function for !OF. Move it out of the relevant #ifdef to make it available
> to all users.

Thanks for your patch, which is now commit ad8ee969d7e34dd3 ("of: make
for_each_property_of_node() available to to !OF") in dt-rh/for-next

> Fixes: 611cad720148 ("dt: add of_alias_scan and of_alias_get_id")

How is this related?

> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
> ---
> I have an upcoming driver that will use this but which can also be built
> on non-DT systems. I'd like to get that in as a fix to avoid inter-tree
> dependencies later.

Do you have a link?

> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -362,9 +362,6 @@ extern struct device_node *of_get_cpu_state_node(struct device_node *cpu_node,
> int index);
> extern u64 of_get_cpu_hwid(struct device_node *cpun, unsigned int thread);
>
> -#define for_each_property_of_node(dn, pp) \
> - for (pp = dn->properties; pp != NULL; pp = pp->next)
> -
> extern int of_n_addr_cells(struct device_node *np);
> extern int of_n_size_cells(struct device_node *np);
> extern const struct of_device_id *of_match_node(
> @@ -892,6 +889,9 @@ static inline int of_prop_val_eq(struct property *p1, struct property *p2)
> !memcmp(p1->value, p2->value, (size_t)p1->length);
> }
>
> +#define for_each_property_of_node(dn, pp) \
> + for (pp = dn->properties; pp != NULL; pp = pp->next)

Is this safe if !OF? Can dn be NULL?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68korg

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds