simplebus: Map SYS_RES_IOPORT to SYS_RES_MEMORY later in alloc_resource

Specifically, the set/get_resource methods do not currently remap
resource types, so remap the type in alloc_resource only after
looking for a matching resource list entry.

Fixes:		3cf553288b simplebus: Consistently map SYS_RES_IOPORT to SYS_RES_MEMORY
This commit is contained in:
John Baldwin
2024-02-15 16:04:50 -08:00
parent e32de9626f
commit 4505c89242
+3 -3
View File
@@ -447,9 +447,6 @@ simplebus_alloc_resource(device_t bus, device_t child, int type, int *rid,
sc = device_get_softc(bus);
if (type == SYS_RES_IOPORT)
type = SYS_RES_MEMORY;
/*
* Request for the default allocation with a given rid: use resource
* list stored in the local device info.
@@ -470,6 +467,9 @@ simplebus_alloc_resource(device_t bus, device_t child, int type, int *rid,
count = rle->count;
}
if (type == SYS_RES_IOPORT)
type = SYS_RES_MEMORY;
if (type == SYS_RES_MEMORY) {
/* Remap through ranges property */
for (j = 0; j < sc->nranges; j++) {