Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
@@ -342,8 +342,33 @@ static struct mdesc_notifier_client vio_device_notifier = {
	.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 = {
	.add		= vio_add,
	.add		= vio_add_ds,
	.remove		= vio_remove,
	.node_name	= "domain-services-port",
};