target/mips: Fix address space range declaration on n32
commit8cd0e66353018f63322e0dd200b2d31be265f883
authorWANG Xuerui <xen0n@gentoo.org>
Mon, 28 Mar 2022 03:59:42 +0000 (28 11:59 +0800)
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>
Mon, 28 Mar 2022 22:51:50 +0000 (29 00:51 +0200)
treed42f7a2dadf42b00b0fce747f29207a8fd45c9b2
parenta8749d7cc9210ae76bb7032970ad8a208c67a1f2
target/mips: Fix address space range declaration on n32

This bug is probably lurking there for so long, I cannot even git-blame
my way to the commit first introducing it.

Anyway, because n32 is also TARGET_MIPS64, the address space range
cannot be determined by looking at TARGET_MIPS64 alone. Fix this by only
declaring 48-bit address spaces for n64, or the n32 user emulation will
happily hand out memory ranges beyond the 31-bit limit and crash.

Confirmed to make the minimal reproducing example in the linked issue
behave.

Closes: https://gitlab.com/qemu-project/qemu/-/issues/939
Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
Cc: Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
Tested-by: Andreas K. Huettel <dilfridge@gentoo.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20220328035942.3299661-1-xen0n@gentoo.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
target/mips/cpu-param.h