Commit 07607c54 authored by David S. Miller's avatar David S. Miller

[SPARC64]: Fix domain-services port probing.

We should only use ports underneath "domain-services", other DS ports
in the MDESC aren't for us to use.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a4aa2e86
...@@ -342,8 +342,33 @@ static struct mdesc_notifier_client vio_device_notifier = { ...@@ -342,8 +342,33 @@ static struct mdesc_notifier_client vio_device_notifier = {
.node_name = "virtual-device-port", .node_name = "virtual-device-port",
}; };
/* We are only interested in domain service ports under the
* "domain-services" node. On control nodes there is another port
* under "openboot" that we should not mess with as aparently that is
* reserved exclusively for OBP use.
*/
static void vio_add_ds(struct mdesc_handle *hp, u64 node)
{
int found;
u64 a;
found = 0;
mdesc_for_each_arc(a, hp, node, MDESC_ARC_TYPE_BACK) {
u64 target = mdesc_arc_target(hp, a);
const char *name = mdesc_node_name(hp, target);
if (!strcmp(name, "domain-services")) {
found = 1;
break;
}
}
if (found)
(void) vio_create_one(hp, node, &root_vdev->dev);
}
static struct mdesc_notifier_client vio_ds_notifier = { static struct mdesc_notifier_client vio_ds_notifier = {
.add = vio_add, .add = vio_add_ds,
.remove = vio_remove, .remove = vio_remove,
.node_name = "domain-services-port", .node_name = "domain-services-port",
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment