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() ?
+ + phandle_cache = kzalloc((max_phandle + 1) * sizeof(*phandle_cache), + GFP_KERNEL);
kzalloc (might_sleep) in critical context will break. Anyways, will fix this locally and share test results. Thanks, Chintan -- Qualcom India Private Limited, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project -- 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