diff options
| author | Peter Maydell | 2017-10-03 18:21:43 +0200 |
|---|---|---|
| committer | Riku Voipio | 2017-10-16 15:00:56 +0200 |
| commit | e568f9df086965813a318ff0558782ba90e59c33 (patch) | |
| tree | 75b234d70163ab871e8f76f57a859fecdbe4d58b /linux-user | |
| parent | linux-user: remove duplicate break in syscall (diff) | |
| download | qemu-e568f9df086965813a318ff0558782ba90e59c33.tar.gz qemu-e568f9df086965813a318ff0558782ba90e59c33.tar.xz qemu-e568f9df086965813a318ff0558782ba90e59c33.zip | |
linux-user: Allow -R values up to 0xffff0000 for 32-bit ARM guests
The 32-bit ARM validate_guest_space() check tests whether the
specified -R value leaves enough space for us to put the
commpage in at 0xffff0f00. However it was incorrectly doing
a <= check for the check against (guest_base + guest_size),
which meant that it wasn't permitting the guest space to
butt right up against the commpage.
Fix the comparison, so that -R values all the way up to 0xffff0000
work correctly.
Reviewed-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'linux-user')
| -rw-r--r-- | linux-user/elfload.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 79062882ba..3b857fbc9c 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -377,7 +377,7 @@ static int validate_guest_space(unsigned long guest_base, * then there is no way we can allocate it. */ if (test_page_addr >= guest_base - && test_page_addr <= (guest_base + guest_size)) { + && test_page_addr < (guest_base + guest_size)) { return -1; } |
