Accepting request 461715 from Virtualization:Staging
Update to v2.8.0, including integration of SLE qemu package so we are "Factory First" again for SLE qemu. Includes some spec file tweaks/cleanups as well. A number of post v2.8.0 security fixes are also included. OBS-URL: https://build.opensuse.org/request/show/461715 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=329
This commit is contained in:
committed by
Git OBS Bridge
parent
bfbac80200
commit
70b09a5bad
56
0017-linux-user-use-target_ulong.patch
Normal file
56
0017-linux-user-use-target_ulong.patch
Normal file
@@ -0,0 +1,56 @@
|
||||
From 725c9b6ff408dc7960242751619caeb27560c3e7 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Graf <agraf@suse.de>
|
||||
Date: Tue, 9 Oct 2012 09:06:49 +0200
|
||||
Subject: [PATCH] linux-user: use target_ulong
|
||||
|
||||
Linux syscalls pass pointers or data length or other information of that sort
|
||||
to the kernel. This is all stuff you don't want to have sign extended.
|
||||
Otherwise a host 64bit variable parameter with a size parameter will extend
|
||||
it to a negative number, breaking lseek for example.
|
||||
|
||||
Pass syscall arguments as ulong always.
|
||||
|
||||
Signed-off-by: Alexander Graf <agraf@suse.de>
|
||||
---
|
||||
linux-user/qemu.h | 8 ++++----
|
||||
linux-user/syscall.c | 8 ++++----
|
||||
2 files changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
|
||||
index da73a01106..7d2894d7c0 100644
|
||||
--- a/linux-user/qemu.h
|
||||
+++ b/linux-user/qemu.h
|
||||
@@ -193,10 +193,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src,
|
||||
void target_set_brk(abi_ulong new_brk);
|
||||
abi_long do_brk(abi_ulong new_brk);
|
||||
void syscall_init(void);
|
||||
-abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
- abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
- abi_long arg5, abi_long arg6, abi_long arg7,
|
||||
- abi_long arg8);
|
||||
+abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
|
||||
+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4,
|
||||
+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7,
|
||||
+ abi_ulong arg8);
|
||||
void gemu_log(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
|
||||
extern THREAD CPUState *thread_cpu;
|
||||
void cpu_loop(CPUArchState *env);
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index b04fade80e..ab3cf24dbb 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -7566,10 +7566,10 @@ static target_timer_t get_timer_id(abi_long arg)
|
||||
/* do_syscall() should always have a single exit point at the end so
|
||||
that actions, such as logging of syscall results, can be performed.
|
||||
All errnos that do_syscall() returns must be -TARGET_<errcode>. */
|
||||
-abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
- abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
- abi_long arg5, abi_long arg6, abi_long arg7,
|
||||
- abi_long arg8)
|
||||
+abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
|
||||
+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4,
|
||||
+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7,
|
||||
+ abi_ulong arg8)
|
||||
{
|
||||
CPUState *cpu = ENV_GET_CPU(cpu_env);
|
||||
abi_long ret;
|
Reference in New Issue
Block a user