Message ID | 1507047703-10774-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | New |
Headers | show |
Series | linux-user: Allow -R values up to 0xffff0000 for 32-bit ARM guests | expand |
On Tue, Oct 03, 2017 at 17:21:43 +0100, Peter Maydell wrote: > 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. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Emilio G. Cota <cota@braap.org> E.
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 7906288..3b857fb 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; }
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. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- linux-user/elfload.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)