Move up the warp around test because line
'end = TARGET_PAGE_ALIGN(start+len);'
can interfere with it.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5563
c046a42c-6fe2-441c-8c8c-
71466251a162
target_ulong end;
target_ulong addr;
+ if (start + len < start)
+ /* we've wrapped around */
+ return -1;
+
end = TARGET_PAGE_ALIGN(start+len); /* must do before we loose bits in the next step */
start = start & TARGET_PAGE_MASK;
- if( end < start )
- /* we've wrapped around */
- return -1;
for(addr = start; addr < end; addr += TARGET_PAGE_SIZE) {
p = page_find(addr >> TARGET_PAGE_BITS);
if( !p )