summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_bus.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/subr_bus.c')
-rw-r--r--sys/kern/subr_bus.c40
1 files changed, 38 insertions, 2 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index fd2e9d4..cff6e7f 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -617,7 +617,25 @@ bad:
static void
devadded(device_t dev)
{
- devaddq("+", device_get_nameunit(dev), dev);
+ char *pnp = NULL;
+ char *tmp = NULL;
+
+ pnp = malloc(1024, M_BUS, M_NOWAIT);
+ if (pnp == NULL)
+ goto fail;
+ tmp = malloc(1024, M_BUS, M_NOWAIT);
+ if (tmp == NULL)
+ goto fail;
+ *pnp = '\0';
+ bus_child_pnpinfo_str(dev, pnp, 1024);
+ snprintf(tmp, 1024, "%s %s", device_get_nameunit(dev), pnp);
+ devaddq("+", tmp, dev);
+fail:
+ if (pnp != NULL)
+ free(pnp, M_BUS);
+ if (tmp != NULL)
+ free(tmp, M_BUS);
+ return;
}
/*
@@ -627,7 +645,25 @@ devadded(device_t dev)
static void
devremoved(device_t dev)
{
- devaddq("-", device_get_nameunit(dev), dev);
+ char *pnp = NULL;
+ char *tmp = NULL;
+
+ pnp = malloc(1024, M_BUS, M_NOWAIT);
+ if (pnp == NULL)
+ goto fail;
+ tmp = malloc(1024, M_BUS, M_NOWAIT);
+ if (tmp == NULL)
+ goto fail;
+ *pnp = '\0';
+ bus_child_pnpinfo_str(dev, pnp, 1024);
+ snprintf(tmp, 1024, "%s %s", device_get_nameunit(dev), pnp);
+ devaddq("-", tmp, dev);
+fail:
+ if (pnp != NULL)
+ free(pnp, M_BUS);
+ if (tmp != NULL)
+ free(tmp, M_BUS);
+ return;
}
/*
OpenPOWER on IntegriCloud