of: fix phandle cache creation for DTs with no phandles
With commit 0b3ce78e ("of: cache phandle nodes to reduce cost of of_find_node_by_phandle()"), a G3 PowerMac fails to boot. The root cause is the DT for this system has no phandle properties when booted with BootX. of_populate_phandle_cache() does not handle the case of no phandles correctly. The problem is roundup_pow_of_two() for 0 is undefined. The implementation subtracts 1 underflowing and then things are in the weeds. Fixes: 0b3ce78e ("of: cache phandle nodes to reduce cost of of_find_node_by_phandle()") Cc: stable@vger.kernel.org # 4.17+ Reported-by: NFinn Thain <fthain@telegraphics.com.au> Tested-by: NStan Johnson <userm57@yahoo.com> Reviewed-by: NFrank Rowand <frank.rowand@sony.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: NRob Herring <robh@kernel.org>
Showing
想要评论请 注册 或 登录