aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2017-10-03 17:21:43 +0100
committerRiku Voipio <riku.voipio@linaro.org>2017-10-16 16:00:56 +0300
commite568f9df086965813a318ff0558782ba90e59c33 (patch)
tree75b234d70163ab871e8f76f57a859fecdbe4d58b
parentdd13df011d6e28beb16ef9e4548cd55fee84cb08 (diff)
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>
-rw-r--r--linux-user/elfload.c2
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;
}