linux-user patches for 2.3-rc1

-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIVAwUAVRAafLRIkN7ePJvAAQhJdA//YXWICMENECsj8ds8UFh8OswzvkiB9IRV
 JJdzjfRAjGKi2vj3mh9G2djnOWfwXui/P0d5upZ3lP+IE0QHN2mU+ZgD7TH4FcVl
 9ZxSPtiXP8sKqrVAojk04nYrRVpnyDGtrlEDRShFCpDCnoIZJyQBJxIsorctfaQd
 5KXrJcHIEFVQzp8vQ5DT0wZQfkEajmXNoENK7whaTeITeIYeVL4XmwhNbxcTmyX5
 bxthelavp/U4mUT20llLa1k52HSnK/vNzsU4ncJ/zwEv8MVxPRWrE6NNNQhtCotS
 1o+i5WH6N8GI38vyu33tyLgDO32Xzjd4cMSVglaqs6vK5Xr8Nrjjvc0DH+x3h5VT
 5b+jSwPbATwRft21AYvpiKMrSF8Vq8het7Qa6xY16FL7Z/PS3vC6GM8wmKWmLUhT
 0IeHL2FgNmDQw9w8XIK1S90TlAbQILAzoYQuEMxaNa/ItXQuNnohiwEnMsrCJKrU
 3+SY9d789A+Zz+PPCAdZQ6ETP35vka4fSV0cq8fDTH5nr9ehUi7pdTdj2qvIeCkq
 r5UevHwXwJnh0HHdQJZkCHnrjXAoQHxIAlemSCGxzcX+Yfo2fgbHvbWU8GVE8FqY
 aDWpJ8kXzpWqb0d65NpgRoDDXQYSrH9U8e4gWi1LcREA4hzdeHRlomNf9R+4pu+I
 39eTe9bTyGo=
 =lL2u
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/riku/tags/pull-linux-user-20150323' into staging

linux-user patches for 2.3-rc1

# gpg: Signature made Mon Mar 23 13:51:56 2015 GMT using RSA key ID DE3C9BC0
# gpg: Good signature from "Riku Voipio <riku.voipio@iki.fi>"
# gpg:                 aka "Riku Voipio <riku.voipio@linaro.org>"

* remotes/riku/tags/pull-linux-user-20150323:
  linux-user: fix broken cpu_copy()
  linux-user: fix emulation of splice syscall
  linux-user/main.c: Remove redundant end_exclusive() in arm_kernel_cmpxchg64_helper()

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2015-03-23 15:11:29 +00:00
commit e7aab6d6e3
2 changed files with 19 additions and 7 deletions

View file

@ -525,8 +525,6 @@ segv:
info.si_code = TARGET_SEGV_MAPERR;
info._sifields._sigfault._addr = env->exception.vaddress;
queue_signal(env, info.si_signo, &info);
end_exclusive();
}
/* Handle a jump to the kernel code page. */
@ -3453,7 +3451,7 @@ CPUArchState *cpu_copy(CPUArchState *env)
{
CPUState *cpu = ENV_GET_CPU(env);
CPUState *new_cpu = cpu_init(cpu_model);
CPUArchState *new_env = cpu->env_ptr;
CPUArchState *new_env = new_cpu->env_ptr;
CPUBreakpoint *bp;
CPUWatchpoint *wp;

View file

@ -9351,15 +9351,29 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
{
loff_t loff_in, loff_out;
loff_t *ploff_in = NULL, *ploff_out = NULL;
if(arg2) {
get_user_u64(loff_in, arg2);
if (arg2) {
if (get_user_u64(loff_in, arg2)) {
goto efault;
}
ploff_in = &loff_in;
}
if(arg4) {
get_user_u64(loff_out, arg2);
if (arg4) {
if (get_user_u64(loff_out, arg4)) {
goto efault;
}
ploff_out = &loff_out;
}
ret = get_errno(splice(arg1, ploff_in, arg3, ploff_out, arg5, arg6));
if (arg2) {
if (put_user_u64(loff_in, arg2)) {
goto efault;
}
}
if (arg4) {
if (put_user_u64(loff_out, arg4)) {
goto efault;
}
}
}
break;
#endif