linux-user: Allow -R values up to 0xffff0000 for 32-bit ARM guests
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 3 Oct 2017 16:21:43 +0000 (17:21 +0100)
committerRiku Voipio <riku.voipio@linaro.org>
Mon, 16 Oct 2017 13:00:56 +0000 (16:00 +0300)
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>
linux-user/elfload.c

index 79062882ba091d630b882703c8e56e24e4c39c43..3b857fbc9c3b99dcf07b2af97fb17cc3753d068b 100644 (file)
@@ -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;
     }