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@xxxxxxxxxxxxxx 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