d4a240549b
I ran into a problem when I tried to set up a mapping that started at virtual address 0xFFF00000 and was 0x00100000 long. In other words, the mapping should have gone to the end of the 32 bit address space. The mapping was made with no problem, but pmap_devmap_find_va() wouldn't find an address within the mapping. For example, if I told it to find a mapping for 0x1000 bytes at 0xFFF01000, it would try to make sure that 0xFFF01000 was greater than 0xFFF00000 and that (0xFFF01000+0x1000) was less than (0xFFF00000+0x00100000). However, that last expression (0xFFF00000+0x00100000) wrapped around to be simply 0x00000000 so it wasn't found. This patch fixes this problem in pmap_devmap_find_va() and pmap_devmap_find_pa() by subtracting one off of the sizes to be compared, so in my example, (0xFFF01000+0x1000-1) will be less than (0xFFF00000+0x00100000-1). |
||
---|---|---|
bin | ||
common | ||
crypto | ||
dist | ||
distrib | ||
doc | ||
etc | ||
games | ||
gnu | ||
include | ||
lib | ||
libexec | ||
regress | ||
rescue | ||
sbin | ||
share | ||
sys | ||
tools | ||
usr.bin | ||
usr.sbin | ||
x11 | ||
build.sh | ||
BUILDING | ||
Makefile | ||
Makefile.inc | ||
UPDATING |