Hi Pantelis, On Mon, May 9, 2016 at 8:11 PM, Pantelis Antoniou <pantelis.antoniou@xxxxxxxxxxxx> wrote: > --- a/drivers/of/base.c > +++ b/drivers/of/base.c > @@ -1073,9 +1097,14 @@ struct device_node *of_find_node_by_phandle(phandle handle) > return NULL; > > raw_spin_lock_irqsave(&devtree_lock, flags); > - for_each_of_allnodes(np) > - if (np->phandle == handle) > - break; > + /* when we're ready use the hash table */ > + if (of_phandle_ht_available() && !in_interrupt()) I guess the !in_interrupt() test is because of the locking inside rhashtable_lookup_fast()? > + np = of_phandle_ht_lookup(handle); > + else { /* fallback */ > + for_each_of_allnodes(np) > + if (np->phandle == handle) > + break; > + } 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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html