of/address: Don't loop forever in of_find_matching_node_by_address().
authorDavid Daney <david.daney@cavium.com>
Wed, 19 Aug 2015 20:17:47 +0000 (13:17 -0700)
committerRob Herring <robh@kernel.org>
Tue, 25 Aug 2015 16:29:56 +0000 (11:29 -0500)
commit3a496b00b6f90c41bd21a410871dfc97d4f3c7ab
treeb633747f5c4608e1f7122be4f96524a86bd2a25a
parent068627a5978a885b33f0f49da81860ce78c3ac6f
of/address: Don't loop forever in of_find_matching_node_by_address().

If the internal call to of_address_to_resource() fails, we end up
looping forever in of_find_matching_node_by_address().  This can be
caused by a defective device tree, or calling with an incorrect
matches argument.

Fix by calling of_find_matching_node() unconditionally at the end of
the loop.

Signed-off-by: David Daney <david.daney@cavium.com>
Cc: stable@vger.kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/address.c