When returning a resource that we've allocated with rman_reserve_resource,

go ahead and set the rid for that resource.
This commit is contained in:
Warner Losh 2006-04-20 04:12:02 +00:00
parent 99b0e15695
commit 018dc558f6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=157891
6 changed files with 14 additions and 4 deletions

View File

@ -214,6 +214,7 @@ nexus_alloc_resource(device_t bus, device_t child, int type, int *rid,
if (rv == 0)
return 0;
rman_set_rid(rv, *rid);
rman_set_bustag(rv, (void*)ARM_BUS_SPACE_MEM);
rman_set_bushandle(rv, rman_get_start(rv));

View File

@ -497,6 +497,7 @@ at91_alloc_resource(device_t dev, device_t child, int type, int *rid,
rle->start = rman_get_start(rle->res);
rle->end = rman_get_end(rle->res);
rle->count = count;
rman_set_rid(rle->res, *rid);
}
return (rle->res);
}

View File

@ -127,6 +127,8 @@ sa1110_alloc_resource(device_t bus, device_t child, int type, int *rid,
res = rman_reserve_resource(&sa11x0_softc->sa11x0_rman, *rid, *rid,
count, flags, child);
if (res != NULL)
rman_set_rid(res, *rid);
return (res);
}

View File

@ -380,6 +380,7 @@ i80321_pci_alloc_resource(device_t bus, device_t child, int type, int *rid,
rv = rman_reserve_resource(rm, start, end, count, flags, child);
if (rv == NULL)
return (NULL);
rman_set_rid(rv, *rid);
if (type != SYS_RES_IRQ) {
if (type == SYS_RES_MEMORY)
bh += (rman_get_start(rv));

View File

@ -300,10 +300,14 @@ iq80321_alloc_resource(device_t dev, device_t child, int type, int *rid,
u_long start, u_long end, u_long count, u_int flags)
{
struct i80321_softc *sc = device_get_softc(dev);
struct resource *rv;
if (type == SYS_RES_IRQ)
return (rman_reserve_resource(&sc->sc_irq_rman,
start, end, count, flags, child));
if (type == SYS_RES_IRQ) {
rv = rman_reserve_resource(&sc->sc_irq_rman,
start, end, count, flags, child);
if (rv != NULL)
rman_set_rid(rv, *rid);
}
return (NULL);
}

View File

@ -124,6 +124,7 @@ obio_alloc_resource(device_t bus, device_t child, int type, int *rid,
return (NULL);
if (type == SYS_RES_IRQ)
return (rv);
rman_set_rid(rv, *rid);
rman_set_bustag(rv, bt);
rman_set_bushandle(rv, bh);