--- //depot/vendor/freebsd/src/sys/arm/arm/nexus.c 2010-09-10 11:20:16.000000000 0000 +++ //depot/projects/pci/sys/arm/arm/nexus.c 2011-04-04 19:52:05.000000000 0000 @@ -138,10 +138,10 @@ { mem_rman.rm_start = 0; - mem_rman.rm_end = ~0u; + mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; - if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0u)) + if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0)) panic("nexus_probe mem_rman"); /* --- //depot/vendor/freebsd/src/sys/dev/fdt/fdtbus.c 2011-01-29 21:10:17.000000000 0000 +++ //depot/projects/pci/sys/dev/fdt/fdtbus.c 2011-04-04 19:52:05.000000000 0000 @@ -206,7 +206,7 @@ * Mem-mapped I/O space rman. */ start = 0; - end = ~0u; + end = ~0ul; sc->sc_mem.rm_start = start; sc->sc_mem.rm_end = end; sc->sc_mem.rm_type = RMAN_ARRAY; --- //depot/vendor/freebsd/src/sys/ia64/ia64/nexus.c 2010-09-10 11:20:16.000000000 0000 +++ //depot/projects/pci/sys/ia64/ia64/nexus.c 2011-04-04 19:52:05.000000000 0000 @@ -174,7 +174,7 @@ panic("nexus_probe port_rman"); mem_rman.rm_start = 0; - mem_rman.rm_end = ~0u; + mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; if (rman_init(&mem_rman) --- //depot/vendor/freebsd/src/sys/kern/subr_rman.c 2009-05-19 14:10:40.000000000 0000 +++ //depot/projects/pci/sys/kern/subr_rman.c 2011-04-04 19:52:05.000000000 0000 @@ -133,11 +133,13 @@ static int once = 0; if (once == 0) { once = 1; TAILQ_INIT(&rman_head); mtx_init(&rman_mtx, "rman head", NULL, MTX_DEF); } + if (rm->rm_start == 0 && rm->rm_end == 0) + rm->rm_end = ~0ul; if (rm->rm_type == RMAN_UNINIT) panic("rman_init"); if (rm->rm_type == RMAN_GAUGE) @@ -162,6 +165,8 @@ DPRINTF(("rman_manage_region: <%s> request: start %#lx, end %#lx\n", rm->rm_descr, start, end)); + if (start < rm->rm_start || end > rm->rm_end) + return EINVAL; r = int_alloc_resource(M_NOWAIT); if (r == NULL) return ENOMEM; --- //depot/vendor/freebsd/src/sys/mips/mips/mainbus.c 2010-09-10 11:20:16.000000000 0000 +++ //depot/projects/pci/sys/mips/mips/mainbus.c 2011-04-04 19:52:05.000000000 0000 @@ -146,7 +146,7 @@ panic("mainbus_probe port_rman"); mem_rman.rm_start = 0; - mem_rman.rm_end = ~0u; + mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0)) --- //depot/vendor/freebsd/src/sys/mips/mips/nexus.c 2010-09-10 11:20:16.000000000 0000 +++ //depot/projects/pci/sys/mips/mips/nexus.c 2011-04-04 19:52:05.000000000 0000 @@ -151,7 +151,7 @@ } mem_rman.rm_start = 0; - mem_rman.rm_end = ~0u; + mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "Memory addresses"; if (rman_init(&mem_rman) != 0 || --- //depot/vendor/freebsd/src/sys/mips/rmi/xlr_pci.c 2011-01-20 08:10:15.000000000 0000 +++ //depot/projects/pci/sys/mips/rmi/xlr_pci.c 2011-04-04 19:52:05.000000000 0000 @@ -126,7 +126,7 @@ panic("pci_init_resources irq_rman"); port_rman.rm_start = 0; - port_rman.rm_end = ~0u; + port_rman.rm_end = ~0ul; port_rman.rm_type = RMAN_ARRAY; port_rman.rm_descr = "I/O ports"; if (rman_init(&port_rman) @@ -134,7 +134,7 @@ panic("pci_init_resources port_rman"); mem_rman.rm_start = 0; - mem_rman.rm_end = ~0u; + mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory"; if (rman_init(&mem_rman) --- //depot/vendor/freebsd/src/sys/x86/x86/nexus.c 2010-12-20 16:45:23.000000000 0000 +++ //depot/projects/pci/sys/x86/x86/nexus.c 2011-04-04 19:52:05.000000000 0000 @@ -256,7 +259,7 @@ panic("nexus_init_resources port_rman"); mem_rman.rm_start = 0; - mem_rman.rm_end = ~0u; + mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; if (rman_init(&mem_rman)