|
@@ -757,6 +757,11 @@ static void __init of_unittest_match_node(void)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static struct resource test_bus_res = {
|
|
|
|
+ .start = 0xfffffff8,
|
|
|
|
+ .end = 0xfffffff9,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+};
|
|
static const struct platform_device_info test_bus_info = {
|
|
static const struct platform_device_info test_bus_info = {
|
|
.name = "unittest-bus",
|
|
.name = "unittest-bus",
|
|
};
|
|
};
|
|
@@ -800,6 +805,15 @@ static void __init of_unittest_platform_populate(void)
|
|
return;
|
|
return;
|
|
test_bus->dev.of_node = np;
|
|
test_bus->dev.of_node = np;
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Add a dummy resource to the test bus node after it is
|
|
|
|
+ * registered to catch problems with un-inserted resources. The
|
|
|
|
+ * DT code doesn't insert the resources, and it has caused the
|
|
|
|
+ * kernel to oops in the past. This makes sure the same bug
|
|
|
|
+ * doesn't crop up again.
|
|
|
|
+ */
|
|
|
|
+ platform_device_add_resources(test_bus, &test_bus_res, 1);
|
|
|
|
+
|
|
of_platform_populate(np, match, NULL, &test_bus->dev);
|
|
of_platform_populate(np, match, NULL, &test_bus->dev);
|
|
for_each_child_of_node(np, child) {
|
|
for_each_child_of_node(np, child) {
|
|
for_each_child_of_node(child, grandchild)
|
|
for_each_child_of_node(child, grandchild)
|