git: fef01f0498aa - main - new-bus: Remove the 'type' argument from BUS_ADJUST_RESOURCE

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 13 Mar 2024 22:13:39 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=fef01f0498aa7b256bc37bbf28ee0e8ac9b2536f

commit fef01f0498aa7b256bc37bbf28ee0e8ac9b2536f
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2024-03-13 22:05:54 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2024-03-13 22:05:54 +0000

    new-bus: Remove the 'type' argument from BUS_ADJUST_RESOURCE
    
    The public bus_adjust_resource() API still accepts both forms, but the
    internal kobj method no longer passes the argument.  Implementations
    which need the type now use rman_get_type() to fetch the value from
    the allocated resource.
    
    Reviewed by:    imp
    Differential Revision:  https://reviews.freebsd.org/D44128
---
 share/man/man9/bus_adjust_resource.9 | 15 ++++-----------
 sys/arm/mv/mv_pci.c                  | 13 ++++++-------
 sys/arm64/cavium/thunder_pcie_pem.c  | 16 ++++++++--------
 sys/dev/acpica/acpi.c                |  4 ++--
 sys/dev/acpica/acpi_pcib_acpi.c      |  9 ++++-----
 sys/dev/bhnd/bhndb/bhndb.c           |  6 +++---
 sys/dev/bhnd/cores/chipc/chipc.c     |  7 +++----
 sys/dev/dpaa2/dpaa2_mc.c             |  8 ++++----
 sys/dev/dpaa2/dpaa2_mc.h             |  2 +-
 sys/dev/fdt/simplebus.c              | 14 +-------------
 sys/dev/hyperv/pcib/vmbus_pcib.c     |  6 +++---
 sys/dev/ofw/ofw_pcib.c               | 12 ++++++------
 sys/dev/pccbb/pccbb_pci.c            |  6 +++---
 sys/dev/pci/pci_host_generic.c       | 10 +++++-----
 sys/dev/pci/pci_pci.c                |  8 ++++----
 sys/dev/pci/pci_subr.c               | 10 +++++-----
 sys/dev/pci/pcib_private.h           |  2 +-
 sys/dev/vmd/vmd.c                    | 10 ++++------
 sys/kern/bus_if.m                    |  2 --
 sys/kern/subr_bus.c                  | 21 ++++++++++-----------
 sys/powerpc/mpc85xx/lbc.c            | 16 ++++++----------
 sys/powerpc/powermac/macio.c         | 15 +++++++--------
 sys/powerpc/powermac/uninorth.c      | 15 +++++++--------
 sys/powerpc/psim/iobus.c             | 15 +++++++--------
 sys/sys/bus.h                        | 12 ++++++------
 sys/x86/include/legacyvar.h          |  2 +-
 sys/x86/pci/pci_bus.c                |  6 +++---
 sys/x86/x86/mptable_pci.c            |  7 +++----
 28 files changed, 117 insertions(+), 152 deletions(-)

diff --git a/share/man/man9/bus_adjust_resource.9 b/share/man/man9/bus_adjust_resource.9
index 6afc31cfb35c..27173894e0ec 100644
--- a/share/man/man9/bus_adjust_resource.9
+++ b/share/man/man9/bus_adjust_resource.9
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd April 23, 2016
+.Dd March 13, 2024
 .Dt BUS_ADJUST_RESOURCE 9
 .Os
 .Sh NAME
@@ -40,7 +40,7 @@
 .In machine/resource.h
 .Ft int
 .Fo bus_adjust_resource
-.Fa "device_t dev" "int type" "struct resource *r"
+.Fa "device_t dev" "struct resource *r"
 .Fa "rman_res_t start" "rman_res_t end"
 .Fc
 .Sh DESCRIPTION
@@ -52,13 +52,6 @@ should have been allocated by a previous call to
 .Xr bus_alloc_resource 9 .
 The new resource range must overlap the existing range of
 .Fa r .
-The
-.Fa type
-argument should match the
-.Fa type
-argument passed to
-.Xr bus_alloc_resource 9
-when the resource was initially allocated.
 .Pp
 Note that none of the constraints of the original allocation request such
 as alignment or boundary restrictions are checked by
@@ -74,8 +67,8 @@ Grow an existing memory resource by 4096 bytes.
 	struct resource *res;
 	int error;
 
-	error = bus_adjust_resource(dev, SYS_RES_MEMORY, res,
-	    rman_get_start(res), rman_get_end(res) + 0x1000);
+	error = bus_adjust_resource(dev, res, rman_get_start(res),
+	    rman_get_end(res) + 0x1000);
 .Ed
 .Sh ERRORS
 .Fn bus_adjust_resource
diff --git a/sys/arm/mv/mv_pci.c b/sys/arm/mv/mv_pci.c
index 76da1c4da7a7..42ee3180a942 100644
--- a/sys/arm/mv/mv_pci.c
+++ b/sys/arm/mv/mv_pci.c
@@ -345,7 +345,7 @@ static int mv_pcib_attach(device_t);
 static struct rman *mv_pcib_get_rman(device_t, int, u_int);
 static struct resource *mv_pcib_alloc_resource(device_t, device_t, int, int *,
     rman_res_t, rman_res_t, rman_res_t, u_int);
-static int mv_pcib_adjust_resource(device_t, device_t, int, struct resource *,
+static int mv_pcib_adjust_resource(device_t, device_t, struct resource *,
     rman_res_t, rman_res_t);
 static int mv_pcib_release_resource(device_t, device_t, int, int,
     struct resource *);
@@ -941,26 +941,25 @@ mv_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid,
 }
 
 static int
-mv_pcib_adjust_resource(device_t dev, device_t child, int type,
+mv_pcib_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 #ifdef PCI_RES_BUS
 	struct mv_pcib_softc *sc = device_get_softc(dev);
 #endif
 
-	switch (type) {
+	switch (rman_get_type(r)) {
 	case SYS_RES_IOPORT:
 	case SYS_RES_MEMORY:
-		return (bus_generic_rman_adjust_resource(dev, child, type, r,
-		    start, end));
+		return (bus_generic_rman_adjust_resource(dev, child, r, start,
+		    end));
 #ifdef PCI_RES_BUS
 	case PCI_RES_BUS:
 		return (pci_domain_adjust_bus(sc->ap_segment, child, r, start,
 		    end));
 #endif
 	default:
-		return (bus_generic_adjust_resource(dev, child, type, r,
-		    start, end));
+		return (bus_generic_adjust_resource(dev, child, r, start, end));
 	}
 }
 
diff --git a/sys/arm64/cavium/thunder_pcie_pem.c b/sys/arm64/cavium/thunder_pcie_pem.c
index 5060b6e79d97..78fcf333d825 100644
--- a/sys/arm64/cavium/thunder_pcie_pem.c
+++ b/sys/arm64/cavium/thunder_pcie_pem.c
@@ -122,7 +122,7 @@
 
 static int thunder_pem_activate_resource(device_t, device_t, int, int,
     struct resource *);
-static int thunder_pem_adjust_resource(device_t, device_t, int,
+static int thunder_pem_adjust_resource(device_t, device_t,
     struct resource *, rman_res_t, rman_res_t);
 static struct resource * thunder_pem_alloc_resource(device_t, device_t, int,
     int *, rman_res_t, rman_res_t, rman_res_t, u_int);
@@ -355,26 +355,26 @@ thunder_pem_unmap_resource(device_t dev, device_t child, int type,
 }
 
 static int
-thunder_pem_adjust_resource(device_t dev, device_t child, int type,
-    struct resource *res, rman_res_t start, rman_res_t end)
+thunder_pem_adjust_resource(device_t dev, device_t child, struct resource *res,
+    rman_res_t start, rman_res_t end)
 {
 #if defined(NEW_PCIB) && defined(PCI_RES_BUS)
 	struct thunder_pem_softc *sc;
 
 	sc = device_get_softc(dev);
 #endif
-	switch (type) {
+	switch (rman_get_type(res)) {
 #if defined(NEW_PCIB) && defined(PCI_RES_BUS)
 	case PCI_RES_BUS:
 		return (pci_domain_adjust_bus(sc->id, child, res, start, end));
 #endif
 	case SYS_RES_MEMORY:
 	case SYS_RES_IOPORT:
-		return (bus_generic_rman_adjust_resource(dev, child, type, res,
-		    start, end));
+		return (bus_generic_rman_adjust_resource(dev, child, res, start,
+		    end));
 	default:
-		return (bus_generic_adjust_resource(dev, child, type, res,
-		    start, end));
+		return (bus_generic_adjust_resource(dev, child, res, start,
+		    end));
 	}
 }
 
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index 0ea9a32b1589..93bce7df70d5 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -1570,13 +1570,13 @@ acpi_managed_resource(device_t bus, int type, struct resource *r)
 }
 
 static int
-acpi_adjust_resource(device_t bus, device_t child, int type, struct resource *r,
+acpi_adjust_resource(device_t bus, device_t child, struct resource *r,
     rman_res_t start, rman_res_t end)
 {
 
     if (acpi_is_resource_managed(bus, r))
 	return (rman_adjust_resource(r, start, end));
-    return (bus_generic_adjust_resource(bus, child, type, r, start, end));
+    return (bus_generic_adjust_resource(bus, child, r, start, end));
 }
 
 static int
diff --git a/sys/dev/acpica/acpi_pcib_acpi.c b/sys/dev/acpica/acpi_pcib_acpi.c
index 451a8d8b736d..235670076dae 100644
--- a/sys/dev/acpica/acpi_pcib_acpi.c
+++ b/sys/dev/acpica/acpi_pcib_acpi.c
@@ -97,7 +97,7 @@ static struct resource *acpi_pcib_acpi_alloc_resource(device_t dev,
 			    u_int flags);
 #ifdef NEW_PCIB
 static int		acpi_pcib_acpi_adjust_resource(device_t dev,
-			    device_t child, int type, struct resource *r,
+			    device_t child, struct resource *r,
 			    rman_res_t start, rman_res_t end);
 #ifdef PCI_RES_BUS
 static int		acpi_pcib_acpi_release_resource(device_t dev,
@@ -745,19 +745,18 @@ acpi_pcib_acpi_alloc_resource(device_t dev, device_t child, int type, int *rid,
 
 #ifdef NEW_PCIB
 int
-acpi_pcib_acpi_adjust_resource(device_t dev, device_t child, int type,
+acpi_pcib_acpi_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct acpi_hpcib_softc *sc;
 
 	sc = device_get_softc(dev);
 #ifdef PCI_RES_BUS
-	if (type == PCI_RES_BUS)
+	if (rman_get_type(r) == PCI_RES_BUS)
 		return (pci_domain_adjust_bus(sc->ap_segment, child, r, start,
 		    end));
 #endif
-	return (pcib_host_res_adjust(&sc->ap_host_res, child, type, r, start,
-	    end));
+	return (pcib_host_res_adjust(&sc->ap_host_res, child, r, start, end));
 }
 
 #ifdef PCI_RES_BUS
diff --git a/sys/dev/bhnd/bhndb/bhndb.c b/sys/dev/bhnd/bhndb/bhndb.c
index ea5230bf459b..f8a1467894d1 100644
--- a/sys/dev/bhnd/bhndb/bhndb.c
+++ b/sys/dev/bhnd/bhndb/bhndb.c
@@ -1080,7 +1080,7 @@ bhndb_release_resource(device_t dev, device_t child, int type, int rid,
  * Default bhndb(4) implementation of BUS_ADJUST_RESOURCE().
  */
 static int
-bhndb_adjust_resource(device_t dev, device_t child, int type,
+bhndb_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct bhndb_softc		*sc;
@@ -1093,10 +1093,10 @@ bhndb_adjust_resource(device_t dev, device_t child, int type,
 
 	/* Delegate to our parent device's bus if the requested resource type
 	 * isn't handled locally. */
-	rm = bhndb_get_rman(sc, child, type);
+	rm = bhndb_get_rman(sc, child, rman_get_type(r));
 	if (rm == NULL) {
 		return (BUS_ADJUST_RESOURCE(device_get_parent(sc->parent_dev),
-		    child, type, r, start, end));
+		    child, r, start, end));
 	}
 
 	/* Verify basic constraints */
diff --git a/sys/dev/bhnd/cores/chipc/chipc.c b/sys/dev/bhnd/cores/chipc/chipc.c
index f99f42fb3ac3..2d1440e5c987 100644
--- a/sys/dev/bhnd/cores/chipc/chipc.c
+++ b/sys/dev/bhnd/cores/chipc/chipc.c
@@ -913,7 +913,7 @@ chipc_release_resource(device_t dev, device_t child, int type, int rid,
 }
 
 static int
-chipc_adjust_resource(device_t dev, device_t child, int type,
+chipc_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct chipc_softc		*sc;
@@ -923,10 +923,9 @@ chipc_adjust_resource(device_t dev, device_t child, int type,
 	sc = device_get_softc(dev);
 
 	/* Handled by parent bus? */
-	rm = chipc_get_rman(dev, type, rman_get_flags(r));
+	rm = chipc_get_rman(dev, rman_get_type(r), rman_get_flags(r));
 	if (rm == NULL || !rman_is_region_manager(r, rm)) {
-		return (bus_generic_adjust_resource(dev, child, type, r, start,
-		    end));
+		return (bus_generic_adjust_resource(dev, child, r, start, end));
 	}
 
 	/* The range is limited to the existing region mapping */
diff --git a/sys/dev/dpaa2/dpaa2_mc.c b/sys/dev/dpaa2/dpaa2_mc.c
index 6d11e50b1f98..0dbb282399ae 100644
--- a/sys/dev/dpaa2/dpaa2_mc.c
+++ b/sys/dev/dpaa2/dpaa2_mc.c
@@ -343,16 +343,16 @@ dpaa2_mc_alloc_resource(device_t mcdev, device_t child, int type, int *rid,
 }
 
 int
-dpaa2_mc_adjust_resource(device_t mcdev, device_t child, int type,
+dpaa2_mc_adjust_resource(device_t mcdev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct rman *rm;
 
-	rm = dpaa2_mc_rman(mcdev, type, rman_get_flags(r));
+	rm = dpaa2_mc_rman(mcdev, rman_get_type(r), rman_get_flags(r));
 	if (rm)
-		return (bus_generic_rman_adjust_resource(mcdev, child, type, r,
+		return (bus_generic_rman_adjust_resource(mcdev, child, r,
 		    start, end));
-	return (bus_generic_adjust_resource(mcdev, child, type, r, start, end));
+	return (bus_generic_adjust_resource(mcdev, child, r, start, end));
 }
 
 int
diff --git a/sys/dev/dpaa2/dpaa2_mc.h b/sys/dev/dpaa2/dpaa2_mc.h
index 40b318c4c9e7..23b18f8d2ca6 100644
--- a/sys/dev/dpaa2/dpaa2_mc.h
+++ b/sys/dev/dpaa2/dpaa2_mc.h
@@ -183,7 +183,7 @@ struct rman *dpaa2_mc_rman(device_t mcdev, int type, u_int flags);
 struct resource * dpaa2_mc_alloc_resource(device_t mcdev, device_t child,
     int type, int *rid, rman_res_t start, rman_res_t end, rman_res_t count,
     u_int flags);
-int dpaa2_mc_adjust_resource(device_t mcdev, device_t child, int type,
+int dpaa2_mc_adjust_resource(device_t mcdev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end);
 int dpaa2_mc_release_resource(device_t mcdev, device_t child, int type,
     int rid, struct resource *r);
diff --git a/sys/dev/fdt/simplebus.c b/sys/dev/fdt/simplebus.c
index ceb5fdde4bb7..940f93f56274 100644
--- a/sys/dev/fdt/simplebus.c
+++ b/sys/dev/fdt/simplebus.c
@@ -46,8 +46,6 @@
 static int		simplebus_probe(device_t dev);
 static struct resource *simplebus_alloc_resource(device_t, device_t, int,
     int *, rman_res_t, rman_res_t, rman_res_t, u_int);
-static int		simplebus_adjust_resource(device_t bus, device_t child,
-    int type, struct resource *r, rman_res_t start, rman_res_t end);
 static int		simplebus_release_resource(device_t bus, device_t child,
     int type, int rid, struct resource *r);
 static int		simplebus_activate_resource(device_t bus,
@@ -99,7 +97,7 @@ static device_method_t	simplebus_methods[] = {
 	DEVMETHOD(bus_release_resource,	simplebus_release_resource),
 	DEVMETHOD(bus_activate_resource, simplebus_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, simplebus_deactivate_resource),
-	DEVMETHOD(bus_adjust_resource,	simplebus_adjust_resource),
+	DEVMETHOD(bus_adjust_resource,	bus_generic_adjust_resource),
 	DEVMETHOD(bus_map_resource,	simplebus_map_resource),
 	DEVMETHOD(bus_unmap_resource,	simplebus_unmap_resource),
 	DEVMETHOD(bus_set_resource,	bus_generic_rl_set_resource),
@@ -496,16 +494,6 @@ simplebus_alloc_resource(device_t bus, device_t child, int type, int *rid,
 	    count, flags));
 }
 
-static int
-simplebus_adjust_resource(device_t bus, device_t child, int type,
-    struct resource *r, rman_res_t start, rman_res_t end)
-{
-
-	if (type == SYS_RES_IOPORT)
-		type = SYS_RES_MEMORY;
-	return (bus_generic_adjust_resource(bus, child, type, r, start, end));
-}
-
 static int
 simplebus_release_resource(device_t bus, device_t child, int type, int rid,
     struct resource *r)
diff --git a/sys/dev/hyperv/pcib/vmbus_pcib.c b/sys/dev/hyperv/pcib/vmbus_pcib.c
index 3fa349b0c0c5..3d3041ee76b3 100644
--- a/sys/dev/hyperv/pcib/vmbus_pcib.c
+++ b/sys/dev/hyperv/pcib/vmbus_pcib.c
@@ -1713,15 +1713,15 @@ vmbus_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid,
 }
 
 static int
-vmbus_pcib_adjust_resource(device_t dev, device_t child, int type,
+vmbus_pcib_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct vmbus_pcib_softc *sc = device_get_softc(dev);
 
-	if (type == PCI_RES_BUS)
+	if (rman_get_type(r) == PCI_RES_BUS)
 		return (pci_domain_adjust_bus(sc->hbus->pci_domain, child, r,
 		    start, end));
-	return (bus_generic_adjust_resource(dev, child, type, r, start, end));
+	return (bus_generic_adjust_resource(dev, child, r, start, end));
 }
 
 static int
diff --git a/sys/dev/ofw/ofw_pcib.c b/sys/dev/ofw/ofw_pcib.c
index f8d0fc8e7029..e95a5f029140 100644
--- a/sys/dev/ofw/ofw_pcib.c
+++ b/sys/dev/ofw/ofw_pcib.c
@@ -73,7 +73,7 @@ static int ofw_pcib_activate_resource(device_t, device_t, int, int,
     struct resource *);
 static int ofw_pcib_deactivate_resource(device_t, device_t, int, int,
     struct resource *);
-static int ofw_pcib_adjust_resource(device_t, device_t, int,
+static int ofw_pcib_adjust_resource(device_t, device_t,
     struct resource *, rman_res_t, rman_res_t);
 static int ofw_pcib_map_resource(device_t, device_t, int, struct resource *,
     struct resource_map_request *, struct resource_map *);
@@ -656,7 +656,7 @@ ofw_pcib_deactivate_resource(device_t bus, device_t child, int type, int rid,
 }
 
 static int
-ofw_pcib_adjust_resource(device_t bus, device_t child, int type,
+ofw_pcib_adjust_resource(device_t bus, device_t child,
     struct resource *res, rman_res_t start, rman_res_t end)
 {
 #if defined(NEW_PCIB) && defined(PCI_RES_BUS)
@@ -664,7 +664,7 @@ ofw_pcib_adjust_resource(device_t bus, device_t child, int type,
 
 	sc = device_get_softc(bus);
 #endif
-	switch (type) {
+	switch (rman_get_type(res)) {
 #if defined(NEW_PCIB) && defined(PCI_RES_BUS)
 	case PCI_RES_BUS:
 		return (pci_domain_adjust_bus(sc->sc_pci_domain, child, res,
@@ -672,11 +672,11 @@ ofw_pcib_adjust_resource(device_t bus, device_t child, int type,
 #endif
 	case SYS_RES_MEMORY:
 	case SYS_RES_IOPORT:
-		return (bus_generic_rman_adjust_resource(bus, child, type, res,
+		return (bus_generic_rman_adjust_resource(bus, child, res,
 		    start, end));
 	default:
-		return (bus_generic_adjust_resource(bus, child, type, res,
-		    start, end));
+		return (bus_generic_adjust_resource(bus, child, res, start,
+		    end));
 	}
 }
 
diff --git a/sys/dev/pccbb/pccbb_pci.c b/sys/dev/pccbb/pccbb_pci.c
index 1a07ff8a4e98..08014fb210ed 100644
--- a/sys/dev/pccbb/pccbb_pci.c
+++ b/sys/dev/pccbb/pccbb_pci.c
@@ -803,18 +803,18 @@ cbb_pci_alloc_resource(device_t bus, device_t child, int type, int *rid,
 }
 
 static int
-cbb_pci_adjust_resource(device_t bus, device_t child, int type,
+cbb_pci_adjust_resource(device_t bus, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct cbb_softc *sc;
 
 	sc = device_get_softc(bus);
-	if (type == PCI_RES_BUS) {
+	if (rman_get_type(r) == PCI_RES_BUS) {
 		if (!rman_is_region_manager(r, &sc->bus.rman))
 			return (EINVAL);
 		return (rman_adjust_resource(r, start, end));
 	}
-	return (bus_generic_adjust_resource(bus, child, type, r, start, end));
+	return (bus_generic_adjust_resource(bus, child, r, start, end));
 }
 
 static int
diff --git a/sys/dev/pci/pci_host_generic.c b/sys/dev/pci/pci_host_generic.c
index da49edcf91f5..f4fccc7b8277 100644
--- a/sys/dev/pci/pci_host_generic.c
+++ b/sys/dev/pci/pci_host_generic.c
@@ -614,7 +614,7 @@ generic_pcie_deactivate_resource(device_t dev, device_t child, int type,
 }
 
 static int
-generic_pcie_adjust_resource(device_t dev, device_t child, int type,
+generic_pcie_adjust_resource(device_t dev, device_t child,
     struct resource *res, rman_res_t start, rman_res_t end)
 {
 #if defined(NEW_PCIB) && defined(PCI_RES_BUS)
@@ -622,7 +622,7 @@ generic_pcie_adjust_resource(device_t dev, device_t child, int type,
 
 	sc = device_get_softc(dev);
 #endif
-	switch (type) {
+	switch (rman_get_type(res)) {
 #if defined(NEW_PCIB) && defined(PCI_RES_BUS)
 	case PCI_RES_BUS:
 		return (pci_domain_adjust_bus(sc->ecam, child, res, start,
@@ -630,11 +630,11 @@ generic_pcie_adjust_resource(device_t dev, device_t child, int type,
 #endif
 	case SYS_RES_IOPORT:
 	case SYS_RES_MEMORY:
-		return (bus_generic_rman_adjust_resource(dev, child, type, res,
+		return (bus_generic_rman_adjust_resource(dev, child, res,
 		    start, end));
 	default:
-		return (bus_generic_adjust_resource(dev, child, type, res,
-		    start, end));
+		return (bus_generic_adjust_resource(dev, child, res, start,
+		    end));
 	}
 }
 
diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c
index da09a917b9bc..b4c02bfeca37 100644
--- a/sys/dev/pci/pci_pci.c
+++ b/sys/dev/pci/pci_pci.c
@@ -2372,23 +2372,23 @@ pcib_alloc_resource(device_t dev, device_t child, int type, int *rid,
 }
 
 static int
-pcib_adjust_resource(device_t bus, device_t child, int type, struct resource *r,
+pcib_adjust_resource(device_t bus, device_t child, struct resource *r,
     rman_res_t start, rman_res_t end)
 {
 	struct pcib_softc *sc;
 	struct pcib_window *w;
 	rman_res_t wmask;
-	int error;
+	int error, type;
 
 	sc = device_get_softc(bus);
+	type = rman_get_type(r);
 
 	/*
 	 * If the resource wasn't sub-allocated from one of our region
 	 * managers then just pass the request up.
 	 */
 	if (!pcib_is_resource_managed(sc, r))
-		return (bus_generic_adjust_resource(bus, child, type, r,
-		    start, end));
+		return (bus_generic_adjust_resource(bus, child, r, start, end));
 
 #ifdef PCI_RES_BUS
 	if (type == PCI_RES_BUS) {
diff --git a/sys/dev/pci/pci_subr.c b/sys/dev/pci/pci_subr.c
index e2583a75e303..4be3e3f166eb 100644
--- a/sys/dev/pci/pci_subr.c
+++ b/sys/dev/pci/pci_subr.c
@@ -260,26 +260,26 @@ restart:
 }
 
 int
-pcib_host_res_adjust(struct pcib_host_resources *hr, device_t dev, int type,
+pcib_host_res_adjust(struct pcib_host_resources *hr, device_t dev,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct resource_list_entry *rle;
 
-	rle = resource_list_find(&hr->hr_rl, type, 0);
+	rle = resource_list_find(&hr->hr_rl, rman_get_type(r), 0);
 	if (rle == NULL) {
 		/*
 		 * No decoding ranges for this resource type, just pass
 		 * the request up to the parent.
 		 */
-		return (bus_generic_adjust_resource(hr->hr_pcib, dev, type, r,
-		    start, end));
+		return (bus_generic_adjust_resource(hr->hr_pcib, dev, r, start,
+		    end));
 	}
 
 	/* Only allow adjustments that stay within a decoded range. */
 	for (; rle != NULL; rle = STAILQ_NEXT(rle, link)) {
 		if (rle->start <= start && rle->end >= end)
 			return (bus_generic_adjust_resource(hr->hr_pcib, dev,
-			    type, r, start, end));
+			    r, start, end));
 	}
 	return (ERANGE);
 }
diff --git a/sys/dev/pci/pcib_private.h b/sys/dev/pci/pcib_private.h
index bc0b48d9f031..1f4f18d921e5 100644
--- a/sys/dev/pci/pcib_private.h
+++ b/sys/dev/pci/pcib_private.h
@@ -56,7 +56,7 @@ struct resource *pcib_host_res_alloc(struct pcib_host_resources *hr,
 		    device_t dev, int type, int *rid, rman_res_t start,
 		    rman_res_t end, rman_res_t count, u_int flags);
 int		pcib_host_res_adjust(struct pcib_host_resources *hr,
-		    device_t dev, int type, struct resource *r, rman_res_t start,
+		    device_t dev, struct resource *r, rman_res_t start,
 		    rman_res_t end);
 #endif
 
diff --git a/sys/dev/vmd/vmd.c b/sys/dev/vmd/vmd.c
index d885cd15ac26..c258ef7a7047 100644
--- a/sys/dev/vmd/vmd.c
+++ b/sys/dev/vmd/vmd.c
@@ -469,16 +469,14 @@ vmd_alloc_resource(device_t dev, device_t child, int type, int *rid,
 }
 
 static int
-vmd_adjust_resource(device_t dev, device_t child, int type,
+vmd_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 
-	if (type == SYS_RES_IRQ) {
-		return (bus_generic_adjust_resource(dev, child, type, r,
-		    start, end));
+	if (rman_get_type(r) == SYS_RES_IRQ) {
+		return (bus_generic_adjust_resource(dev, child, r, start, end));
 	}
-	return (bus_generic_rman_adjust_resource(dev, child, type, r, start,
-	    end));
+	return (bus_generic_rman_adjust_resource(dev, child, r, start, end));
 }
 
 static int
diff --git a/sys/kern/bus_if.m b/sys/kern/bus_if.m
index 7078683911b8..497b98ca4601 100644
--- a/sys/kern/bus_if.m
+++ b/sys/kern/bus_if.m
@@ -399,7 +399,6 @@ METHOD int deactivate_resource {
  *
  * @param _dev		the parent device of @p _child
  * @param _child	the device which allocated the resource
- * @param _type		the type of resource
  * @param _res		the resource to adjust
  * @param _start	the new starting address of the resource range
  * @param _end		the new ending address of the resource range
@@ -407,7 +406,6 @@ METHOD int deactivate_resource {
 METHOD int adjust_resource {
 	device_t	_dev;
 	device_t	_child;
-	int		_type;
 	struct resource *_res;
 	rman_res_t	_start;
 	rman_res_t	_end;
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index 25cb5fba2108..33d7b1e4af88 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -3877,13 +3877,12 @@ bus_generic_resume_intr(device_t dev, device_t child, struct resource *irq)
  * BUS_ADJUST_RESOURCE() method of the parent of @p dev.
  */
 int
-bus_generic_adjust_resource(device_t dev, device_t child, int type,
-    struct resource *r, rman_res_t start, rman_res_t end)
+bus_generic_adjust_resource(device_t dev, device_t child, struct resource *r,
+    rman_res_t start, rman_res_t end)
 {
 	/* Propagate up the bus hierarchy until someone handles it. */
 	if (dev->parent)
-		return (BUS_ADJUST_RESOURCE(dev->parent, child, type, r, start,
-		    end));
+		return (BUS_ADJUST_RESOURCE(dev->parent, child, r, start, end));
 	return (EINVAL);
 }
 
@@ -4270,12 +4269,12 @@ bus_generic_rman_alloc_resource(device_t dev, device_t child, int type,
  * BUS_GET_RMAN().
  */
 int
-bus_generic_rman_adjust_resource(device_t dev, device_t child, int type,
+bus_generic_rman_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct rman *rm;
 
-	rm = BUS_GET_RMAN(dev, type, rman_get_flags(r));
+	rm = BUS_GET_RMAN(dev, rman_get_type(r), rman_get_flags(r));
 	if (rm == NULL)
 		return (ENXIO);
 	if (!rman_is_region_manager(r, rm))
@@ -4537,19 +4536,19 @@ bus_alloc_resource(device_t dev, int type, int *rid, rman_res_t start,
  * parent of @p dev.
  */
 int
-bus_adjust_resource(device_t dev, int type, struct resource *r, rman_res_t start,
+bus_adjust_resource(device_t dev, struct resource *r, rman_res_t start,
     rman_res_t end)
 {
 	if (dev->parent == NULL)
 		return (EINVAL);
-	return (BUS_ADJUST_RESOURCE(dev->parent, dev, type, r, start, end));
+	return (BUS_ADJUST_RESOURCE(dev->parent, dev, r, start, end));
 }
 
 int
-bus_adjust_resource_new(device_t dev, struct resource *r, rman_res_t start,
-    rman_res_t end)
+bus_adjust_resource_old(device_t dev, int type __unused, struct resource *r,
+    rman_res_t start, rman_res_t end)
 {
-	return (bus_adjust_resource(dev, rman_get_type(r), r, start, end));
+	return (bus_adjust_resource(dev, r, start, end));
 }
 
 /**
diff --git a/sys/powerpc/mpc85xx/lbc.c b/sys/powerpc/mpc85xx/lbc.c
index f6f38f22beb6..afac89b7597a 100644
--- a/sys/powerpc/mpc85xx/lbc.c
+++ b/sys/powerpc/mpc85xx/lbc.c
@@ -81,7 +81,7 @@ static int lbc_deactivate_resource(device_t bus,
 static struct rman *lbc_get_rman(device_t, int, u_int);
 static struct resource *lbc_alloc_resource(device_t, device_t, int, int *,
     rman_res_t, rman_res_t, rman_res_t, u_int);
-static int lbc_adjust_resource(device_t, device_t, int, struct resource *,
+static int lbc_adjust_resource(device_t, device_t, struct resource *,
     rman_res_t, rman_res_t);
 static int lbc_print_child(device_t, device_t);
 static int lbc_release_resource(device_t, device_t, int, int,
@@ -762,19 +762,15 @@ lbc_print_child(device_t dev, device_t child)
 }
 
 static int
-lbc_adjust_resource(device_t dev, device_t child, int type, struct resource *r,
+lbc_adjust_resource(device_t dev, device_t child, struct resource *r,
     rman_res_t start, rman_res_t end)
 {
-	switch (type) {
-	case SYS_RES_IOPORT:
-		type = SYS_RES_MEMORY;
-		/* FALLTHROUGH */
+	switch (rman_get_type(r)) {
 	case SYS_RES_MEMORY:
-		return (bus_generic_rman_adjust_resource(dev, child, type, r,
-		    start, end));
-	case SYS_RES_IRQ:
-		return (bus_generic_adjust_resource(dev, child, type, r, start,
+		return (bus_generic_rman_adjust_resource(dev, child, r, start,
 		    end));
+	case SYS_RES_IRQ:
+		return (bus_generic_adjust_resource(dev, child, r, start, end));
 	default:
 		return (EINVAL);
 	}
diff --git a/sys/powerpc/powermac/macio.c b/sys/powerpc/powermac/macio.c
index f6ad815064e8..b443f277ec89 100644
--- a/sys/powerpc/powermac/macio.c
+++ b/sys/powerpc/powermac/macio.c
@@ -84,7 +84,7 @@ static struct rman *macio_get_rman(device_t, int, u_int);
 static struct   resource *macio_alloc_resource(device_t, device_t, int, int *,
 					       rman_res_t, rman_res_t, rman_res_t,
 					       u_int);
-static int  macio_adjust_resource(device_t, device_t, int, struct resource *,
+static int  macio_adjust_resource(device_t, device_t, struct resource *,
 				  rman_res_t, rman_res_t);
 static int  macio_activate_resource(device_t, device_t, int, int,
 				    struct resource *);
@@ -596,17 +596,16 @@ macio_alloc_resource(device_t bus, device_t child, int type, int *rid,
 }
 
 static int
-macio_adjust_resource(device_t bus, device_t child, int type,
-    struct resource *r, rman_res_t start, rman_res_t end)
+macio_adjust_resource(device_t bus, device_t child, struct resource *r,
+    rman_res_t start, rman_res_t end)
 {
-	switch (type) {
+	switch (rman_get_type(r)) {
 	case SYS_RES_IOPORT:
 	case SYS_RES_MEMORY:
-		return (bus_generic_rman_adjust_resource(bus, child, type, r,
-		    start, end));
-	case SYS_RES_IRQ:
-		return (bus_generic_adjust_resource(bus, child, type, r, start,
+		return (bus_generic_rman_adjust_resource(bus, child, r, start,
 		    end));
+	case SYS_RES_IRQ:
+		return (bus_generic_adjust_resource(bus, child, r, start, end));
 	default:
 		return (EINVAL);
 	}
diff --git a/sys/powerpc/powermac/uninorth.c b/sys/powerpc/powermac/uninorth.c
index b64bbc8ade62..b9cb4814b986 100644
--- a/sys/powerpc/powermac/uninorth.c
+++ b/sys/powerpc/powermac/uninorth.c
@@ -75,7 +75,7 @@ static struct rman *unin_chip_get_rman(device_t, int, u_int);
 static struct resource *unin_chip_alloc_resource(device_t, device_t, int, int *,
 						 rman_res_t, rman_res_t,
 						 rman_res_t, u_int);
-static int  unin_chip_adjust_resource(device_t, device_t, int,
+static int  unin_chip_adjust_resource(device_t, device_t,
 				      struct resource *, rman_res_t,
 				      rman_res_t);
 static int  unin_chip_activate_resource(device_t, device_t, int, int,
@@ -554,17 +554,16 @@ unin_chip_alloc_resource(device_t bus, device_t child, int type, int *rid,
 }
 
 static int
-unin_chip_adjust_resource(device_t bus, device_t child, int type,
-    struct resource *r, rman_res_t start, rman_res_t end)
+unin_chip_adjust_resource(device_t bus, device_t child, struct resource *r,
+    rman_res_t start, rman_res_t end)
 {
-	switch (type) {
+	switch (rman_get_type(r)) {
 	case SYS_RES_IOPORT:
 	case SYS_RES_MEMORY:
-		return (bus_generic_rman_adjust_resource(bus, child, type, r,
-		    start, end));
-	case SYS_RES_IRQ:
-		return (bus_generic_adjust_resource(bus, child, type, r, start,
+		return (bus_generic_rman_adjust_resource(bus, child, r, start,
 		    end));
+	case SYS_RES_IRQ:
+		return (bus_generic_adjust_resource(bus, child, r, start, end));
 	default:
 		return (EINVAL);
 	}
diff --git a/sys/powerpc/psim/iobus.c b/sys/powerpc/psim/iobus.c
index eea0255aa21c..79befbc8bd86 100644
--- a/sys/powerpc/psim/iobus.c
+++ b/sys/powerpc/psim/iobus.c
@@ -74,7 +74,7 @@ static struct rman *iobus_get_rman(device_t, int, u_int);
 static struct   resource *iobus_alloc_resource(device_t, device_t, int, int *,
 					       rman_res_t, rman_res_t, rman_res_t,
 					       u_int);
-static int  iobus_adjust_resource(device_t, device_t, int, struct resource *,
+static int  iobus_adjust_resource(device_t, device_t, struct resource *,
 				  rman_res_t, rman_res_t);
 static int  iobus_activate_resource(device_t, device_t, int, int,
 				    struct resource *);
@@ -342,18 +342,17 @@ iobus_alloc_resource(device_t bus, device_t child, int type, int *rid,
 }
 
 static int
-iobus_adjust_resource(device_t bus, device_t child, int type,
-    struct resource *r, rman_res_t start, rman_res_t end)
+iobus_adjust_resource(device_t bus, device_t child, struct resource *r,
+    rman_res_t start, rman_res_t end)
 {
 
-	switch (type) {
+	switch (rman_get_type(r)) {
 	case SYS_RES_MEMORY:
 	case SYS_RES_IOPORT:
-		return (bus_generic_rman_adjust_resource(bus, child, type, r,
-		    start, end));
-	case SYS_RES_IRQ:
-		return (bus_generic_adjust_resource(bus, child, type, r, start,
+		return (bus_generic_rman_adjust_resource(bus, child, r, start,
 		    end));
+	case SYS_RES_IRQ:
+		return (bus_generic_adjust_resource(bus, child, r, start, end));
 	default:
 		return (EINVAL);
 	}
diff --git a/sys/sys/bus.h b/sys/sys/bus.h
index 6fcd414dc7be..310b3646f49f 100644
--- a/sys/sys/bus.h
+++ b/sys/sys/bus.h
@@ -432,7 +432,7 @@ int	bus_generic_activate_resource(device_t dev, device_t child, int type,
 device_t
 	bus_generic_add_child(device_t dev, u_int order, const char *name,
 			      int unit);
-int	bus_generic_adjust_resource(device_t bus, device_t child, int type,
+int	bus_generic_adjust_resource(device_t bus, device_t child,
 				    struct resource *r, rman_res_t start,
 				    rman_res_t end);
 struct resource *
@@ -504,7 +504,7 @@ struct resource *
 					int *rid, rman_res_t start,
 					rman_res_t end, rman_res_t count,
 					u_int flags);
-int	bus_generic_rman_adjust_resource(device_t dev, device_t child, int type,
+int	bus_generic_rman_adjust_resource(device_t dev, device_t child,
 					 struct resource *r, rman_res_t start,
 					 rman_res_t end);
 int	bus_generic_rman_release_resource(device_t dev, device_t child,
@@ -554,7 +554,7 @@ int	bus_alloc_resources(device_t dev, struct resource_spec *rs,
 void	bus_release_resources(device_t dev, const struct resource_spec *rs,
 			      struct resource **res);
 
-int	bus_adjust_resource(device_t child, int type, struct resource *r,
+int	bus_adjust_resource(device_t child, struct resource *r,
 			    rman_res_t start, rman_res_t end);
 int	bus_translate_resource(device_t child, int type, rman_res_t start,
 			       rman_res_t *newstart);
@@ -614,7 +614,7 @@ bus_alloc_resource_anywhere(device_t dev, int type, int *rid,
 }
 
 /* Compat shims for simpler bus resource API. */
-int	bus_adjust_resource_new(device_t child, struct resource *r,
+int	bus_adjust_resource_old(device_t child, int type, struct resource *r,
     rman_res_t start, rman_res_t end);
 int	bus_activate_resource_new(device_t dev, struct resource *r);
 int	bus_deactivate_resource_new(device_t dev, struct resource *r);
@@ -627,8 +627,8 @@ int	bus_release_resource_new(device_t dev, struct resource *r);
 #define	_BUS_API_MACRO(_1, _2, _3, _4, _5, NAME, ...)	NAME
 
 #define	bus_adjust_resource(...)					\
-	_BUS_API_MACRO(__VA_ARGS__, bus_adjust_resource,		\
-	    bus_adjust_resource_new)(__VA_ARGS__)
+	_BUS_API_MACRO(__VA_ARGS__, bus_adjust_resource_old,		\
+	    bus_adjust_resource)(__VA_ARGS__)
 
 #define	bus_activate_resource(...)					\
 	_BUS_API_MACRO(__VA_ARGS__, INVALID, bus_activate_resource,	\
diff --git a/sys/x86/include/legacyvar.h b/sys/x86/include/legacyvar.h
index 5627e9b90306..789c6c55f198 100644
--- a/sys/x86/include/legacyvar.h
+++ b/sys/x86/include/legacyvar.h
@@ -58,7 +58,7 @@ int	legacy_pcib_write_ivar(device_t dev, device_t child, int which,
 struct resource *legacy_pcib_alloc_resource(device_t dev, device_t child,
     int type, int *rid, rman_res_t start, rman_res_t end, rman_res_t count,
     u_int flags);
-int	legacy_pcib_adjust_resource(device_t dev, device_t child, int type,
+int	legacy_pcib_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end);
 int	legacy_pcib_release_resource(device_t dev, device_t child, int type,
     int rid, struct resource *r);
diff --git a/sys/x86/pci/pci_bus.c b/sys/x86/pci/pci_bus.c
index cfe0a3974187..c7715c47d3c8 100644
--- a/sys/x86/pci/pci_bus.c
+++ b/sys/x86/pci/pci_bus.c
@@ -607,13 +607,13 @@ legacy_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid,
 
 #if defined(NEW_PCIB) && defined(PCI_RES_BUS)
 int
-legacy_pcib_adjust_resource(device_t dev, device_t child, int type,
+legacy_pcib_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 
-	if (type == PCI_RES_BUS)
+	if (rman_get_type(r) == PCI_RES_BUS)
 		return (pci_domain_adjust_bus(0, child, r, start, end));
-	return (bus_generic_adjust_resource(dev, child, type, r, start, end));
+	return (bus_generic_adjust_resource(dev, child, r, start, end));
 }
 
 int
diff --git a/sys/x86/x86/mptable_pci.c b/sys/x86/x86/mptable_pci.c
index 5792b0cb7387..de659ca75163 100644
--- a/sys/x86/x86/mptable_pci.c
+++ b/sys/x86/x86/mptable_pci.c
@@ -139,18 +139,17 @@ mptable_hostb_alloc_resource(device_t dev, device_t child, int type, int *rid,
 }
 
 static int
-mptable_hostb_adjust_resource(device_t dev, device_t child, int type,
+mptable_hostb_adjust_resource(device_t dev, device_t child,
     struct resource *r, rman_res_t start, rman_res_t end)
 {
 	struct mptable_hostb_softc *sc;
 
 #ifdef PCI_RES_BUS
-	if (type == PCI_RES_BUS)
+	if (rman_get_type(r) == PCI_RES_BUS)
 		return (pci_domain_adjust_bus(0, child, r, start, end));
 #endif
 	sc = device_get_softc(dev);
-	return (pcib_host_res_adjust(&sc->sc_host_res, child, type, r, start,
-	    end));
+	return (pcib_host_res_adjust(&sc->sc_host_res, child, r, start, end));
 }
 #endif