diff options
author | wma <wma@FreeBSD.org> | 2016-02-29 09:22:39 +0000 |
---|---|---|
committer | wma <wma@FreeBSD.org> | 2016-02-29 09:22:39 +0000 |
commit | 6dd3382ff8741c8167dd44d3f94b1c162da3be3a (patch) | |
tree | 8f473b7ed4691fe398e44ade68a0d37d22739240 /sys/dev/cesa | |
parent | 62517cc3146261ea135285ef32ce74057c20648a (diff) | |
download | FreeBSD-src-6dd3382ff8741c8167dd44d3f94b1c162da3be3a.zip FreeBSD-src-6dd3382ff8741c8167dd44d3f94b1c162da3be3a.tar.gz |
Fix fdt_get_mem_regions() to work with 64-bit addresses
Use u_long instead of uint32_t variables to avoid overflow
in case of PA space bigger than 32-bit.
Obtained from: Semihalf
Submitted by: Michal Stanek <mst@semihalf.com>
Sponsored by: Annapurna Labs
Approved by: cognet (mentor)
Reviewed by: andrew, br, wma
Differential revision: https://reviews.freebsd.org/D5393
Diffstat (limited to 'sys/dev/cesa')
-rw-r--r-- | sys/dev/cesa/cesa.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/cesa/cesa.c b/sys/dev/cesa/cesa.c index c14f944..9c747f3 100644 --- a/sys/dev/cesa/cesa.c +++ b/sys/dev/cesa/cesa.c @@ -1641,7 +1641,8 @@ decode_win_cesa_setup(struct cesa_softc *sc) { struct mem_region availmem_regions[FDT_MEM_REGIONS]; int availmem_regions_sz; - uint32_t memsize, br, cr, i; + uint32_t br, cr, i; + u_long memsize; /* Grab physical memory regions information from DTS */ if (fdt_get_mem_regions(availmem_regions, &availmem_regions_sz, |