OSDN Git Service

cpu-all.h: Don't accidentally sign extend in g2h()
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 9 Mar 2012 14:33:20 +0000 (14:33 +0000)
committerAnthony Liguori <aliguori@us.ibm.com>
Mon, 12 Mar 2012 19:05:26 +0000 (14:05 -0500)
commit8d9dde9429d2b5b513bf92d94a257a00ea2da1bf
tree97742f39ae157d5893a9e266e9ea21cf93793247
parent1d3323de5fe5656844ea57a16eb432f09a366140
cpu-all.h: Don't accidentally sign extend in g2h()

Cast the argument of the g2h() macro to a target_ulong so that
it isn't accidentally sign-extended if it is a signed 32 bit
type and long is a 64 bit type. In particular, this fixes a
bug where it would return the wrong value for 32 bit guests
on 64 bit hosts when passed in one of the arg* values from
do_syscall() [which are all abi_long and thus signed types].
This could result in spurious failure of mlock(), among others.

Reviewed-by: Andreas F=E4rber <afaerber@suse.de>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
cpu-all.h