On 01/31/18 22:45, Chintan Pandya wrote: > > > On 2/1/2018 1:35 AM, frowand.list@xxxxxxxxx wrote: >> From: Frank Rowand <frank.rowand@xxxxxxxx> > >> + >> +static void of_populate_phandle_cache(void) >> +{ >> + unsigned long flags; >> + phandle max_phandle; >> + u32 nodes = 0; >> + struct device_node *np; >> + >> + if (phandle_cache) >> + return; >> + >> + max_phandle = live_tree_max_phandle(); >> + >> + raw_spin_lock_irqsave(&devtree_lock, flags); >> + >> + for_each_of_allnodes(np) >> + nodes++; >> + >> + /* sanity cap for malformed tree */ >> + if (max_phandle > nodes) >> + max_phandle = nodes; > Shouldn't we speak up about this in kernel log ? May be WARN_ON() ? Probably not. If we care enough about a hand coded phandle property value we should add a check to checkpatch and/or dtc instead of adding the warning here. >> + >> + phandle_cache = kzalloc((max_phandle + 1) * sizeof(*phandle_cache), >> + GFP_KERNEL); > kzalloc (might_sleep) in critical context will break. Yes, thanks. I also need to ensure memory ordering in of_free_phandle_cache() to ensure that max_phandle_cache is zero before the cache memory is freed. > Anyways, will fix this locally and share test results. Thanks, I look forward to the results. > Thanks, > Chintan > -- 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