mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
[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: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a4aa2e867c
commit
07607c5492
@ -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",
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user