of/selftest: Fix testing when /aliases is missing

The /aliases node isn't always present in the device tree, but the
unittest code assumes that /aliases is there. Add a check when inserting
the testcase data to see if of_aliases needs to be updated, and undo the
settings when the nodes are removed.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Gaurav Minocha <gaurav.minocha.os@gmail.com>
Cc: <stable@vger.kernel.org>
This commit is contained in:
Grant Likely 2014-11-19 17:13:44 +00:00
parent c1a2086e2d
commit 788ec2fc2c

View File

@ -899,7 +899,11 @@ static void selftest_data_remove(void)
while (last_node_index-- > 0) {
if (nodes[last_node_index]) {
np = of_find_node_by_path(nodes[last_node_index]->full_name);
if (strcmp(np->full_name, "/aliases") != 0) {
if (np == nodes[last_node_index]) {
if (of_aliases == np) {
of_node_put(of_aliases);
of_aliases = NULL;
}
detach_node_and_children(np);
} else {
for_each_property_of_node(np, prop) {
@ -920,6 +924,8 @@ static int __init of_selftest(void)
res = selftest_data_add();
if (res)
return res;
if (!of_aliases)
of_aliases = of_find_node_by_path("/aliases");
np = of_find_node_by_path("/testcase-data/phandle-tests/consumer-a");
if (!np) {