aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2016-01-27 17:33:31 +0000
committerAndrew Turner <andrew@FreeBSD.org>2016-01-27 17:33:31 +0000
commitb958a08eb70fe78eff316f152671970ec5c7a0fe (patch)
treec94bdd0871bc23137b67bf5b3569a20c1f0b1b5d /sys
parentd28e78bacf9bbb72ba4db04d3308567f9696f7b7 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ofw/ofw_subr.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/ofw/ofw_subr.c b/sys/dev/ofw/ofw_subr.c
index e046406557b9..68ba18ee24a7 100644
--- a/sys/dev/ofw/ofw_subr.c
+++ b/sys/dev/ofw/ofw_subr.c
@@ -75,8 +75,8 @@ ofw_reg_to_paddr(phandle_t dev, int regno, bus_addr_t *paddr,
bus_size_t *psize, pcell_t *ppci_hi)
{
pcell_t cell[32], pci_hi;
- bus_addr_t addr, raddr, baddr;
- bus_size_t size, rsize;
+ uint64_t addr, raddr, baddr;
+ uint64_t size, rsize;
uint32_t c, nbridge, naddr, nsize;
phandle_t bridge, parent;
u_int spc, rspc;
@@ -167,6 +167,11 @@ ofw_reg_to_paddr(phandle_t dev, int regno, bus_addr_t *paddr,
get_addr_props(bridge, &naddr, &nsize, &pci);
}
+ KASSERT(addr <= BUS_SPACE_MAXADDR,
+ ("Bus sddress is too large: %jx", (intmax_t)addr));
+ KASSERT(size <= BUS_SPACE_MAXSIZE,
+ ("Bus size is too large: %jx", (intmax_t)addr));
+
*paddr = addr;
*psize = size;
if (ppci_hi != NULL)