diff options
| author | Andrew Turner <andrew@FreeBSD.org> | 2016-01-27 17:33:31 +0000 |
|---|---|---|
| committer | Andrew Turner <andrew@FreeBSD.org> | 2016-01-27 17:33:31 +0000 |
| commit | b958a08eb70fe78eff316f152671970ec5c7a0fe (patch) | |
| tree | c94bdd0871bc23137b67bf5b3569a20c1f0b1b5d /sys | |
| parent | d28e78bacf9bbb72ba4db04d3308567f9696f7b7 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/dev/ofw/ofw_subr.c | 9 |
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) |
