aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/vmd/vmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/vmd/vmd.c')
-rw-r--r--sys/dev/vmd/vmd.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/sys/dev/vmd/vmd.c b/sys/dev/vmd/vmd.c
index b52787fc45d3..0595a6c5be16 100644
--- a/sys/dev/vmd/vmd.c
+++ b/sys/dev/vmd/vmd.c
@@ -383,9 +383,9 @@ vmd_attach(device_t dev)
}
sc->vmd_dma_tag = bus_get_dma_tag(dev);
-
- sc->psc.child = device_add_child(dev, "pci", -1);
- return (bus_generic_attach(dev));
+ sc->psc.child = device_add_child(dev, "pci", DEVICE_UNIT_ANY);
+ bus_attach_children(dev);
+ return (0);
fail:
vmd_free(sc);
@@ -401,9 +401,6 @@ vmd_detach(device_t dev)
error = bus_generic_detach(dev);
if (error)
return (error);
- error = device_delete_children(dev);
- if (error)
- return (error);
if (sc->vmd_msix_count == 0)
vmd_set_msi_bypass(dev, false);
vmd_free(sc);
@@ -543,7 +540,7 @@ vmd_map_resource(device_t dev, device_t child, struct resource *r,
args.offset = start - rman_get_start(pres);
args.length = length;
- return (bus_generic_map_resource(dev, child, pres, &args, map));
+ return (bus_map_resource(dev, pres, &args, map));
}
static int
@@ -551,11 +548,12 @@ vmd_unmap_resource(device_t dev, device_t child, struct resource *r,
struct resource_map *map)
{
struct vmd_softc *sc = device_get_softc(dev);
+ struct resource *pres;
- r = vmd_find_parent_resource(sc, r);
- if (r == NULL)
+ pres = vmd_find_parent_resource(sc, r);
+ if (pres == NULL)
return (ENOENT);
- return (bus_generic_unmap_resource(dev, child, r, map));
+ return (bus_unmap_resource(dev, pres, map));
}
static int