Hi, This patch series fixes an issue that was discussed here [1] where using -R can cause QEMU to fail to setup the guest address space because the guest base validation fails. I fixed this issue by (1) refactoring the guest space probing code into a single function for initializing the guest space and (2) by calling the guest space initialization code for both the case of reserving the guest space upfront (-R) and the case where the initial memory space base/size are gleaned from an ELF image.
Tested by going through various combinations of -R <size>, -B <base>, -B <base> -R <size>, and neither -R or -B passed. I also ran the libstdc++ testsuite through the MIPS, ARM, and Power usermode emulators with -R set. No regressions. NOTE: This does not fix the problem that was raised concerning mapped the full 32-bit address space on a 64-bit system. That will need to be another patch. - Changes since v1: * Replaced '!host_start && !host_size' error check in 'init_guest_space' with an assert. * Ensured that 'guest_validate_base' is passed the true guest base instead of the current host start address. * s/init_guest_space(..., 0)/init_guest_space(..., false);/ * Fixed typo in 'init_guest_space' header comment. [1] http://lists.nongnu.org/archive/html/qemu-devel/2012-06/msg04508.html Signed-off-by: Meador Inge <mead...@codesourcery.com> Meador Inge (2): linux-user: Factor out guest space probing into a function linux-user: Use init_guest_space when -R and -B are specified linux-user/elfload.c | 161 ++++++++++++++++++++++++++++++++++++++------------ linux-user/main.c | 35 ++--------- linux-user/qemu.h | 15 ++++- 3 files changed, 140 insertions(+), 71 deletions(-) -- 1.7.7.6