SHA256
1
0
forked from pool/qemu

Accepting request 155049 from home:a_faerber:branches:Virtualization

Update to v1.4.0-rc1

OBS-URL: https://build.opensuse.org/request/show/155049
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=127
This commit is contained in:
Andreas Färber 2013-02-10 18:32:29 +00:00 committed by Git OBS Bridge
parent f50ef334f7
commit 05d69eeee2
45 changed files with 406 additions and 361 deletions

View File

@ -1,4 +1,4 @@
From 3538cf4c292b77ef153276a59fe8e914e62cce03 Mon Sep 17 00:00:00 2001
From 1a840fa8e950de4985f4b1fd8d91d8718c366547 Mon Sep 17 00:00:00 2001
From: Peter Maydell <peter.maydell@linaro.org>
Date: Wed, 5 Oct 2011 10:04:02 +0100
Subject: [PATCH] Handle CPU interrupts by inline checking of a flag
@ -22,17 +22,20 @@ Mostly this needs benchmarking to determine what the actual speed
hit is, which I never got round to. Feel free to do some :-)
[AF: CPUState -> CPUArchState]
[AF: Rebased onto exec.c/translate-all.c split]
---
cpu-exec.c | 11 ++++++++++-
exec.c | 14 ++++++++++++--
gen-icount.h | 16 ++++++++++++++++
linux-user/main.c | 8 ++++++++
qemu-options.hx | 9 +++++++++
vl.c | 5 +++++
6 files changed, 60 insertions(+), 3 deletions(-)
cpu-exec.c | 11 ++++++++++-
exec.c | 6 +++++-
include/exec/gen-icount.h | 16 ++++++++++++++++
linux-user/main.c | 8 ++++++++
qemu-options.hx | 9 +++++++++
translate-all.c | 8 +++++++-
translate-all.h | 2 ++
vl.c | 5 +++++
8 Dateien geändert, 62 Zeilen hinzugefügt(+), 3 Zeilen entfernt(-)
diff --git a/cpu-exec.c b/cpu-exec.c
index 904ee73..b83d43e 100644
index 19ebb4a..02d8d69 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -597,7 +597,16 @@ int cpu_exec(CPUArchState *env)
@ -54,34 +57,19 @@ index 904ee73..b83d43e 100644
int insns_left;
tb = (TranslationBlock *)(next_tb & ~3);
diff --git a/exec.c b/exec.c
index 8435de0..edb44fc 100644
index b85508b..9458672 100644
--- a/exec.c
+++ b/exec.c
@@ -119,6 +119,8 @@ DEFINE_TLS(CPUArchState *,cpu_single_env);
@@ -79,6 +79,8 @@ DEFINE_TLS(CPUArchState *,cpu_single_env);
1 = Precise instruction counting.
2 = Adaptive rate instruction counting. */
int use_icount = 0;
int use_icount;
+/* 1 to do cpu_exit by inline flag check rather than tb link breaking */
+int use_stopflag = 1;
typedef struct PageDesc {
/* list of TBs intersecting this ram page */
@@ -1734,7 +1736,13 @@ static void tcg_handle_interrupt(CPUArchState *env, int mask)
cpu_abort(env, "Raised interrupt while not in I/O function");
}
} else {
- cpu_unlink_tb(env);
+ // XXX just call cpu_exit ?
+ if (use_stopflag) {
+ // XXX is this OK?
+ env->exit_request = 1;
+ } else {
+ cpu_unlink_tb(env);
+ }
}
}
#if !defined(CONFIG_USER_ONLY)
@@ -1757,7 +1765,9 @@ void cpu_reset_interrupt(CPUArchState *env, int mask)
@@ -493,7 +495,9 @@ void cpu_reset_interrupt(CPUArchState *env, int mask)
void cpu_exit(CPUArchState *env)
{
env->exit_request = 1;
@ -92,11 +80,11 @@ index 8435de0..edb44fc 100644
}
void cpu_abort(CPUArchState *env, const char *fmt, ...)
diff --git a/gen-icount.h b/gen-icount.h
index 248cf5b..27ab048 100644
--- a/gen-icount.h
+++ b/gen-icount.h
@@ -2,13 +2,25 @@
diff --git a/include/exec/gen-icount.h b/include/exec/gen-icount.h
index 8043b3b..c2e14d5 100644
--- a/include/exec/gen-icount.h
+++ b/include/exec/gen-icount.h
@@ -5,13 +5,25 @@
/* Helpers for instruction counting code generation. */
@ -122,7 +110,7 @@ index 248cf5b..27ab048 100644
if (!use_icount)
return;
@@ -26,6 +38,10 @@ static inline void gen_icount_start(void)
@@ -29,6 +41,10 @@ static inline void gen_icount_start(void)
static void gen_icount_end(TranslationBlock *tb, int num_insns)
{
@ -134,10 +122,10 @@ index 248cf5b..27ab048 100644
*icount_arg = num_insns;
gen_set_label(icount_label);
diff --git a/linux-user/main.c b/linux-user/main.c
index 25e35cd..c339af8 100644
index 3df8aa2..d83f79f 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -64,6 +64,7 @@ unsigned long reserved_va;
@@ -69,6 +69,7 @@ unsigned long reserved_va;
#endif
static void usage(void);
@ -145,7 +133,7 @@ index 25e35cd..c339af8 100644
static const char *interp_prefix = CONFIG_QEMU_INTERP_PREFIX;
const char *qemu_uname_release = CONFIG_UNAME_RELEASE;
@@ -3192,6 +3193,11 @@ static void handle_arg_reserved_va(const char *arg)
@@ -3241,6 +3242,11 @@ static void handle_arg_reserved_va(const char *arg)
}
#endif
@ -157,7 +145,7 @@ index 25e35cd..c339af8 100644
static void handle_arg_singlestep(const char *arg)
{
singlestep = 1;
@@ -3247,6 +3253,8 @@ static const struct qemu_argument arg_table[] = {
@@ -3296,6 +3302,8 @@ static const struct qemu_argument arg_table[] = {
"options", "activate log"},
{"D", "QEMU_LOG_FILENAME", true, handle_arg_log_filename,
"logfile", "override default logfile location"},
@ -167,10 +155,10 @@ index 25e35cd..c339af8 100644
"pagesize", "set the host page size to 'pagesize'"},
{"singlestep", "QEMU_SINGLESTEP", false, handle_arg_singlestep,
diff --git a/qemu-options.hx b/qemu-options.hx
index de43b1b..94a1c50 100644
index 046bdc0..a9ad8cf 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -1258,6 +1258,15 @@ STEXI
@@ -1266,6 +1266,15 @@ STEXI
Disable HPET support.
ETEXI
@ -186,20 +174,52 @@ index de43b1b..94a1c50 100644
DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
"-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...]\n"
" ACPI table description\n", QEMU_ARCH_I386)
diff --git a/translate-all.c b/translate-all.c
index d367fc4..0d6c5a9 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -1476,7 +1476,13 @@ static void tcg_handle_interrupt(CPUArchState *env, int mask)
cpu_abort(env, "Raised interrupt while not in I/O function");
}
} else {
- cpu_unlink_tb(env);
+ // XXX just call cpu_exit ?
+ if (use_stopflag) {
+ // XXX is this OK?
+ env->exit_request = 1;
+ } else {
+ cpu_unlink_tb(env);
+ }
}
}
diff --git a/translate-all.h b/translate-all.h
index b181fb4..44736c5 100644
--- a/translate-all.h
+++ b/translate-all.h
@@ -26,6 +26,8 @@
#define P_L2_LEVELS \
(((TARGET_PHYS_ADDR_SPACE_BITS - TARGET_PAGE_BITS - 1) / L2_BITS) + 1)
+extern int use_stopflag;
+
/* translate-all.c */
void tb_invalidate_phys_page_fast(tb_page_addr_t start, int len);
void cpu_unlink_tb(CPUArchState *env);
diff --git a/vl.c b/vl.c
index a3ab384..a13012e 100644
index a8dc73d..66c2a9b 100644
--- a/vl.c
+++ b/vl.c
@@ -177,6 +177,8 @@ int main(int argc, char **argv)
@@ -178,6 +178,8 @@ int main(int argc, char **argv)
#define MAX_VIRTIO_CONSOLES 1
#define MAX_SCLP_CONSOLES 1
+extern int use_stopflag;
+
static const char *data_dir;
const char *bios_name = NULL;
enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB;
@@ -3226,6 +3228,9 @@ int main(int argc, char **argv, char **envp)
@@ -3507,6 +3509,9 @@ int main(int argc, char **argv, char **envp)
qdev_prop_register_global_list(slew_lost_ticks);
break;
}

View File

@ -1,14 +1,14 @@
From 1c136948d465e16ead3275c02e1cd4cd230ad11e Mon Sep 17 00:00:00 2001
From 2fdec281141692d2b6ffaf23cc2ed96f937b5eac Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 21 Nov 2011 23:50:36 +0100
Subject: [PATCH] XXX dont dump core on sigabort
---
linux-user/signal.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
1 Datei geändert, 6 Zeilen hinzugefügt(+)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 95e2ffa..4758c11 100644
index 67c2311..20c9b4d 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -394,6 +394,10 @@ static void QEMU_NORETURN force_sig(int target_sig)

View File

@ -1,4 +1,4 @@
From ed3496084d3efb765b899720a39e38a6d87215a2 Mon Sep 17 00:00:00 2001
From 3aab4e97f66818ffdd6b52ce3ab6afb77adeee80 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 1 Dec 2011 19:00:01 +0100
Subject: [PATCH] XXX work around SA_RESTART race with boehm-gc (ARM only)
@ -9,13 +9,13 @@ Subject: [PATCH] XXX work around SA_RESTART race with boehm-gc (ARM only)
linux-user/qemu.h | 3 ++
linux-user/signal.c | 22 ++++++++++++
linux-user/syscall.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++-
4 files changed, 130 insertions(+), 10 deletions(-)
4 Dateien geändert, 130 Zeilen hinzugefügt(+), 10 Zeilen entfernt(-)
diff --git a/linux-user/main.c b/linux-user/main.c
index c339af8..c4d10ac 100644
index d83f79f..800e585 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -834,15 +834,22 @@ void cpu_loop(CPUARMState *env)
@@ -839,15 +839,22 @@ void cpu_loop(CPUARMState *env)
break;
}
} else {
@ -48,7 +48,7 @@ index c339af8..c4d10ac 100644
} else {
goto error;
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 5e53dca..7cc7b87 100644
index b10e957..2d6f957 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -137,6 +137,8 @@ typedef struct TaskState {
@ -69,7 +69,7 @@ index 5e53dca..7cc7b87 100644
/* Creates the initial guest address space in the host memory space using
* the given host start address hint and size. The guest_start parameter
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 4758c11..703a9f5 100644
index 20c9b4d..66ab9c9 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -25,6 +25,7 @@
@ -92,7 +92,7 @@ index 4758c11..703a9f5 100644
return 1; /* indicates that the signal was queued */
}
}
@@ -642,8 +648,24 @@ int do_sigaction(int sig, const struct target_sigaction *act,
@@ -636,8 +642,24 @@ int do_sigaction(int sig, const struct target_sigaction *act,
if (host_sig != SIGSEGV && host_sig != SIGBUS) {
sigfillset(&act1.sa_mask);
act1.sa_flags = SA_SIGINFO;
@ -118,10 +118,10 @@ index 4758c11..703a9f5 100644
ignore state to avoid getting unexpected interrupted
syscalls */
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e4291ed..05d4809 100644
index 9e31ea7..512fc4c 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5134,6 +5134,87 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode)
@@ -5165,6 +5165,87 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode)
return get_errno(open(path(pathname), flags, mode));
}
@ -209,7 +209,7 @@ index e4291ed..05d4809 100644
/* 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>. */
@@ -5146,6 +5227,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -5177,6 +5258,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
struct stat st;
struct statfs stfs;
void *p;
@ -222,7 +222,7 @@ index e4291ed..05d4809 100644
#ifdef DEBUG
gemu_log("syscall %d", num);
@@ -8154,7 +8241,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -8174,7 +8261,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
cmd = target_to_host_fcntl_cmd(arg2);
if (cmd == -TARGET_EINVAL) {
ret = cmd;
@ -231,7 +231,7 @@ index e4291ed..05d4809 100644
}
switch(arg2) {
@@ -8911,6 +8998,7 @@ fail:
@@ -8931,6 +9018,7 @@ fail:
#endif
if(do_strace)
print_syscall_ret(num, ret);

View File

@ -1,4 +1,4 @@
From 9f74f21db9a16aa39543305e866bee65fa3600f3 Mon Sep 17 00:00:00 2001
From 50975c5d1d982ede498d020bd682b296855ebd2a Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:18:44 +0200
Subject: [PATCH] qemu-0.9.0.cvs-binfmt
@ -11,7 +11,7 @@ Fixes binfmt_misc setup script:
Signed-off-by: Ulrich Hecht <uli@suse.de>
---
scripts/qemu-binfmt-conf.sh | 37 ++++++++++++++++++++-----------------
1 files changed, 20 insertions(+), 17 deletions(-)
1 Datei geändert, 20 Zeilen hinzugefügt(+), 17 Zeilen entfernt(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 0da2618..dc652f0 100644

View File

@ -1,4 +1,4 @@
From c4c3a1610d2255897310ebcfec4c67dbbe7bdc04 Mon Sep 17 00:00:00 2001
From 9b4c0ade062a4677ccd1df1b40055ff9b8d9b99a Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:20:50 +0200
Subject: [PATCH] qemu-cvs-alsa_bitfield
@ -8,12 +8,40 @@ Implements TYPE_INTBITFIELD partially. (required for ALSA support)
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Ulrich Hecht <uli@suse.de>
---
thunk.c | 21 +++++++++++++++++++++
thunk.h | 3 +++
2 files changed, 24 insertions(+), 0 deletions(-)
include/exec/user/thunk.h | 3 +++
thunk.c | 21 +++++++++++++++++++++
2 Dateien geändert, 24 Zeilen hinzugefügt(+)
diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h
index 87025c3..6c35e64 100644
--- a/include/exec/user/thunk.h
+++ b/include/exec/user/thunk.h
@@ -38,6 +38,7 @@ typedef enum argtype {
TYPE_ARRAY,
TYPE_STRUCT,
TYPE_OLDDEVT,
+ TYPE_INTBITFIELD,
} argtype;
#define MK_PTR(type) TYPE_PTR, type
@@ -91,6 +92,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host)
case TYPE_SHORT:
return 2;
case TYPE_INT:
+ case TYPE_INTBITFIELD:
return 4;
case TYPE_LONGLONG:
case TYPE_ULONGLONG:
@@ -153,6 +155,7 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host)
case TYPE_SHORT:
return 2;
case TYPE_INT:
+ case TYPE_INTBITFIELD:
return 4;
case TYPE_LONGLONG:
case TYPE_ULONGLONG:
diff --git a/thunk.c b/thunk.c
index 8ebbbb4..bf43985 100644
index 3cca047..c6a78ca 100644
--- a/thunk.c
+++ b/thunk.c
@@ -41,6 +41,7 @@ static inline const argtype *thunk_type_next(const argtype *type_ptr)
@ -51,31 +79,3 @@ index 8ebbbb4..bf43985 100644
case TYPE_LONGLONG:
case TYPE_ULONGLONG:
*(uint64_t *)dst = tswap64(*(uint64_t *)src);
diff --git a/thunk.h b/thunk.h
index 87025c3..6c35e64 100644
--- a/thunk.h
+++ b/thunk.h
@@ -38,6 +38,7 @@ typedef enum argtype {
TYPE_ARRAY,
TYPE_STRUCT,
TYPE_OLDDEVT,
+ TYPE_INTBITFIELD,
} argtype;
#define MK_PTR(type) TYPE_PTR, type
@@ -91,6 +92,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host)
case TYPE_SHORT:
return 2;
case TYPE_INT:
+ case TYPE_INTBITFIELD:
return 4;
case TYPE_LONGLONG:
case TYPE_ULONGLONG:
@@ -153,6 +155,7 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host)
case TYPE_SHORT:
return 2;
case TYPE_INT:
+ case TYPE_INTBITFIELD:
return 4;
case TYPE_LONGLONG:
case TYPE_ULONGLONG:

View File

@ -1,4 +1,4 @@
From 5f271962cd70d1acee01d90f8e18434f278df151 Mon Sep 17 00:00:00 2001
From 64d49de4a30473632bcf62e1a0d7464db46943d4 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:23:27 +0200
Subject: [PATCH] qemu-cvs-alsa_ioctl
@ -14,7 +14,7 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
linux-user/syscall_defs.h | 2 +
linux-user/syscall_types.h | 5 +
linux-user/syscall_types_alsa.h | 1336 +++++++++++++++++++++++++++++
6 files changed, 3555 insertions(+), 0 deletions(-)
6 Dateien geändert, 3555 Zeilen hinzugefügt(+)
create mode 100644 linux-user/ioctls_alsa.h
create mode 100644 linux-user/ioctls_alsa_structs.h
create mode 100644 linux-user/syscall_types_alsa.h
@ -2255,15 +2255,16 @@ index 0000000..e09a30d
+ unsigned char *code;
+};
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index a98cbf7..8644f87 100644
index 92c01a9..7ceb56b 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2425,3 +2425,5 @@ struct target_ucred {
uint32_t uid;
@@ -2448,4 +2448,6 @@ struct target_ucred {
uint32_t gid;
};
+
+#include "ioctls_alsa_structs.h"
+
#endif
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
index 44b6a58..7897e37 100644
--- a/linux-user/syscall_types.h

View File

@ -1,4 +1,4 @@
From 394efaf58c0588b971b0e1841daec08807e16d8a Mon Sep 17 00:00:00 2001
From f6aa03d286d5a34306f80eb3aae99e1f5fb88133 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:24:15 +0200
Subject: [PATCH] qemu-cvs-alsa_mmap
@ -9,7 +9,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Ulrich Hecht <uli@suse.de>
---
linux-user/mmap.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
1 Datei geändert, 14 Zeilen hinzugefügt(+)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index b412e3f..46523de 100644

View File

@ -1,4 +1,4 @@
From c5f7ac6f39aa8ccd9599c860fd1ea29c7de45074 Mon Sep 17 00:00:00 2001
From 7c3d4b895ecfdbbb43ff19e7dd7abb0fa73229d7 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:25:41 +0200
Subject: [PATCH] qemu-cvs-gettimeofday
@ -6,13 +6,13 @@ Subject: [PATCH] qemu-cvs-gettimeofday
No clue what this is for.
---
linux-user/syscall.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
1 Datei geändert, 2 Zeilen hinzugefügt(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 05d4809..edcc4c8 100644
index 512fc4c..f3670f5 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6285,6 +6285,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -6316,6 +6316,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
case TARGET_NR_gettimeofday:
{
struct timeval tv;

View File

@ -1,4 +1,4 @@
From 2a1fa27b05b827ebd398af907462a5d68471e96d Mon Sep 17 00:00:00 2001
From ee0ef5c394ebf3e5fc5bd1c9cfe4a119001c3ef0 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:26:33 +0200
Subject: [PATCH] qemu-cvs-ioctl_debug
@ -9,13 +9,13 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Ulrich Hecht <uli@suse.de>
---
linux-user/syscall.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
1 Datei geändert, 6 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index edcc4c8..65246a1 100644
index f3670f5..3716eba 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3705,7 +3705,12 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3720,7 +3720,12 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
ie = ioctl_entries;
for(;;) {
if (ie->target_cmd == 0) {

View File

@ -1,4 +1,4 @@
From 6b28210f9a09e5d3e4daedc7da1a80cece8cdef3 Mon Sep 17 00:00:00 2001
From 73afa8aa92a2c2f17e6f5d1c17722d417f58707a Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 14 Apr 2009 16:27:36 +0200
Subject: [PATCH] qemu-cvs-ioctl_nodirection
@ -12,13 +12,13 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Ulrich Hecht <uli@suse.de>
---
linux-user/syscall.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
1 Datei geändert, 6 Zeilen hinzugefügt(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 65246a1..d8d41c5 100644
index 3716eba..62efb75 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3739,6 +3739,11 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3754,6 +3754,11 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
arg_type++;
target_size = thunk_type_size(arg_type, 0);
switch(ie->access) {
@ -30,7 +30,7 @@ index 65246a1..d8d41c5 100644
case IOC_R:
ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp));
if (!is_error(ret)) {
@@ -3757,6 +3762,7 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3772,6 +3777,7 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
unlock_user(argptr, arg, 0);
ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp));
break;

View File

@ -1,27 +1,28 @@
From c4310aa4c3f20d29b923eca9e37206c36ef30039 Mon Sep 17 00:00:00 2001
From db86a1534d898c8a259902dee33ed777b206844b Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:37:42 +0200
Subject: [PATCH] block/vmdk: Support creation of SCSI VMDK images in qemu-img
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Ulrich Hecht <uli@suse.de>
[AF: Changed BLOCK_FLAG_SCSI from 8 to 16 for v1.2]
[AF: Rebased onto upstream VMDK SCSI support]
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
block.c | 5 ++++-
block/vmdk.c | 12 ++++++++++--
block_int.h | 2 ++
qemu-img.c | 8 +++++++-
4 files changed, 23 insertions(+), 4 deletions(-)
block.c | 5 ++++-
block/vmdk.c | 9 ++++++++-
include/block/block_int.h | 2 ++
qemu-img.c | 8 +++++++-
4 Dateien geändert, 21 Zeilen hinzugefügt(+), 3 Zeilen entfernt(-)
diff --git a/block.c b/block.c
index c05875f..07e271c 100644
index 50dab8e..7ea5ab4 100644
--- a/block.c
+++ b/block.c
@@ -4413,7 +4413,7 @@ int bdrv_img_create(const char *filename, const char *fmt,
char *options, uint64_t img_size, int flags)
@@ -4434,7 +4434,7 @@ void bdrv_img_create(const char *filename, const char *fmt,
char *options, uint64_t img_size, int flags, Error **errp)
{
QEMUOptionParameter *param = NULL, *create_options = NULL;
- QEMUOptionParameter *backing_fmt, *backing_file, *size;
@ -29,7 +30,7 @@ index c05875f..07e271c 100644
BlockDriverState *bs = NULL;
BlockDriver *drv, *proto_drv;
BlockDriver *backing_drv = NULL;
@@ -4528,6 +4528,9 @@ int bdrv_img_create(const char *filename, const char *fmt,
@@ -4542,6 +4542,9 @@ void bdrv_img_create(const char *filename, const char *fmt,
printf("Formatting '%s', fmt=%s ", filename, fmt);
print_option_parameters(param);
@ -40,19 +41,10 @@ index c05875f..07e271c 100644
ret = bdrv_create(drv, filename, param);
diff --git a/block/vmdk.c b/block/vmdk.c
index 51398c0..580e4b3 100644
index aef1abc..a64d888 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -1471,7 +1471,7 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
"ddb.geometry.cylinders = \"%" PRId64 "\"\n"
"ddb.geometry.heads = \"16\"\n"
"ddb.geometry.sectors = \"63\"\n"
- "ddb.adapterType = \"ide\"\n";
+ "ddb.adapterType = \"%s\"\n";
if (filename_decompose(filename, path, prefix, postfix, PATH_MAX)) {
return -EINVAL;
@@ -1486,6 +1486,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
@@ -1482,6 +1482,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
flags |= options->value.n ? BLOCK_FLAG_COMPAT6 : 0;
} else if (!strcmp(options->name, BLOCK_OPT_SUBFMT)) {
fmt = options->value.s;
@ -61,17 +53,16 @@ index 51398c0..580e4b3 100644
}
options++;
}
@@ -1576,7 +1578,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
parent_desc_line,
@@ -1587,7 +1589,7 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
ext_desc_lines,
(flags & BLOCK_FLAG_COMPAT6 ? 6 : 4),
- total_size / (int64_t)(63 * 16 * 512));
+ total_size / (int64_t)(63 * 16 * 512),
+ flags & BLOCK_FLAG_SCSI ? "lsilogic" : "ide");
total_size / (int64_t)(63 * number_heads * 512), number_heads,
- adapter_type);
+ flags & BLOCK_FLAG_SCSI ? "lsilogic" : adapter_type);
if (split || flat) {
fd = qemu_open(filename,
O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_LARGEFILE,
@@ -1677,6 +1680,11 @@ static QEMUOptionParameter vmdk_create_options[] = {
@@ -1694,6 +1696,11 @@ static QEMUOptionParameter vmdk_create_options[] = {
"VMDK flat extent format, can be one of "
"{monolithicSparse (default) | monolithicFlat | twoGbMaxExtentSparse | twoGbMaxExtentFlat | streamOptimized} "
},
@ -83,11 +74,11 @@ index 51398c0..580e4b3 100644
{ NULL }
};
diff --git a/block_int.h b/block_int.h
index 9deedb8..8274c89 100644
--- a/block_int.h
+++ b/block_int.h
@@ -36,6 +36,7 @@
diff --git a/include/block/block_int.h b/include/block/block_int.h
index eaad53e..d8cdd08 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -37,6 +37,7 @@
#define BLOCK_FLAG_ENCRYPT 1
#define BLOCK_FLAG_COMPAT6 4
#define BLOCK_FLAG_LAZY_REFCOUNTS 8
@ -95,7 +86,7 @@ index 9deedb8..8274c89 100644
#define BLOCK_IO_LIMIT_READ 0
#define BLOCK_IO_LIMIT_WRITE 1
@@ -47,6 +48,7 @@
@@ -48,6 +49,7 @@
#define BLOCK_OPT_SIZE "size"
#define BLOCK_OPT_ENCRYPT "encryption"
#define BLOCK_OPT_COMPAT6 "compat6"
@ -104,10 +95,10 @@ index 9deedb8..8274c89 100644
#define BLOCK_OPT_BACKING_FMT "backing_fmt"
#define BLOCK_OPT_CLUSTER_SIZE "cluster_size"
diff --git a/qemu-img.c b/qemu-img.c
index e29e01b..8040a41 100644
index 85d3740..6de3887 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -671,7 +671,7 @@ static int img_convert(int argc, char **argv)
@@ -676,7 +676,7 @@ static int img_convert(int argc, char **argv)
const uint8_t *buf1;
BlockDriverInfo bdi;
QEMUOptionParameter *param = NULL, *create_options = NULL;
@ -116,7 +107,7 @@ index e29e01b..8040a41 100644
char *options = NULL;
const char *snapshot_name = NULL;
float local_progress = 0;
@@ -864,6 +864,12 @@ static int img_convert(int argc, char **argv)
@@ -869,6 +869,12 @@ static int img_convert(int argc, char **argv)
}
}

View File

@ -1,9 +1,9 @@
From 39d021f3946fe2941f3634d59c5dccd8b8f4f686 Mon Sep 17 00:00:00 2001
From 37941cb10c7fd10667225e8486b94e048d345e66 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Wed, 25 Aug 2010 14:23:43 +0200
Subject: [PATCH] configure: Enable mipsn32*-linux-user builds
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Ulrich Hecht <uli@suse.de>
@ -12,13 +12,13 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
configure | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
1 Datei geändert, 2 Zeilen hinzugefügt(+)
diff --git a/configure b/configure
index 994f731..401f369 100755
index 8789324..72a4fed 100755
--- a/configure
+++ b/configure
@@ -952,6 +952,8 @@ microblaze-linux-user \
@@ -978,6 +978,8 @@ microblaze-linux-user \
microblazeel-linux-user \
mips-linux-user \
mipsel-linux-user \

View File

@ -1,9 +1,9 @@
From d1ec1ef3e5ece7526d73408f0b32a31a1d18017d Mon Sep 17 00:00:00 2001
From 7fb8ffe9a9666c7dc4b91b83620628dde08de9a3 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Fri, 30 Sep 2011 19:40:36 +0200
Subject: [PATCH] linux-user: add binfmt wrapper for argv[0] handling
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When using qemu's linux-user binaries through binfmt, argv[0] gets lost
@ -31,11 +31,11 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
linux-user/Makefile.objs | 2 ++
linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++
scripts/qemu-binfmt-conf.sh | 34 +++++++++++++++++-----------------
4 files changed, 73 insertions(+), 17 deletions(-)
4 Dateien geändert, 73 Zeilen hinzugefügt(+), 17 Zeilen entfernt(-)
create mode 100644 linux-user/binfmt.c
diff --git a/Makefile.target b/Makefile.target
index 927347b..dc7efe9 100644
index 760da1e..67336c4 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -31,6 +31,10 @@ PROGS+=$(QEMU_PROGW)
@ -49,16 +49,16 @@ index 927347b..dc7efe9 100644
ifndef CONFIG_HAIKU
LIBS+=-lm
endif
@@ -87,6 +91,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user
@@ -85,6 +89,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user
obj-y += linux-user/
obj-y += gdbstub.o thunk.o user-exec.o $(oslib-obj-y)
obj-y += gdbstub.o thunk.o user-exec.o
+obj-binfmt-y += linux-user/
+
endif #CONFIG_LINUX_USER
#########################################################
@@ -147,6 +153,9 @@ endif # CONFIG_SOFTMMU
@@ -140,6 +146,9 @@ endif # CONFIG_SOFTMMU
%/translate.o: QEMU_CFLAGS += $(TRANSLATE_OPT_CFLAGS)
nested-vars += obj-y
@ -68,7 +68,7 @@ index 927347b..dc7efe9 100644
# This resolves all nested paths, so it must come last
include $(SRC_PATH)/Makefile.objs
@@ -174,6 +183,9 @@ $(QEMU_PROG): $(all-obj-y) ../libqemustub.a
@@ -158,6 +167,9 @@ $(QEMU_PROG): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
$(call LINK,$^)
endif

View File

@ -1,4 +1,4 @@
From 467be0678c62e992057a73553f80e6d5a3cbb703 Mon Sep 17 00:00:00 2001
From a9c897a8986a9efb469eafa63bf99f699a559000 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Sun, 11 Dec 2011 01:19:24 +0100
Subject: [PATCH] linux-user: Ignore timer_create syscall
@ -9,13 +9,13 @@ about it breaks some %check tests in OBS, so better ignore it silently.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/syscall.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
1 Datei geändert, 5 Zeilen hinzugefügt(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d8d41c5..1b8058c 100644
index 62efb75..03b9f69 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8615,6 +8615,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -8635,6 +8635,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
break;
#endif

View File

@ -1,4 +1,4 @@
From f55bb15ac5be15a9179df2a905c1582be3d16443 Mon Sep 17 00:00:00 2001
From b65e49823eb767fd392eedc5fa4ba181f4760e66 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Sun, 11 Dec 2011 01:21:51 +0100
Subject: [PATCH] linux-user: be silent about capget failures
@ -10,13 +10,13 @@ implementation and go on with life :)
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/syscall.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
1 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1b8058c..30ee613 100644
index 03b9f69..3db4e89 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7596,7 +7596,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -7616,7 +7616,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
unlock_user(p, arg1, ret);
break;
case TARGET_NR_capget:

View File

@ -1,4 +1,4 @@
From 821488854490c91bec4912b95a170fdb1835a22a Mon Sep 17 00:00:00 2001
From eaae71802ec8af3ab68fde4cfffc067608db030d Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Fri, 6 Jan 2012 01:05:55 +0100
Subject: [PATCH] PPC: KVM: Disable mmu notifier check
@ -10,13 +10,13 @@ So disable the check for mmu notifiers on PowerPC guests, making
KVM guests work there, even if possibly racy in some odd circumstances.
---
exec.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
1 Datei geändert, 2 Zeilen hinzugefügt(+)
diff --git a/exec.c b/exec.c
index edb44fc..8971d61 100644
index 9458672..9f29d6c 100644
--- a/exec.c
+++ b/exec.c
@@ -2397,10 +2397,12 @@ static void *file_ram_alloc(RAMBlock *block,
@@ -862,10 +862,12 @@ static void *file_ram_alloc(RAMBlock *block,
return NULL;
}
@ -27,5 +27,5 @@ index edb44fc..8971d61 100644
}
+#endif
if (asprintf(&filename, "%s/qemu_back_mem.XXXXXX", path) == -1) {
return NULL;
filename = g_strdup_printf("%s/qemu_back_mem.XXXXXX", path);

View File

@ -1,4 +1,4 @@
From a4ad67884e8b3c45018638dca0906fb492750d66 Mon Sep 17 00:00:00 2001
From 3f2939ec4eff0e8c8163c977dc58304a681accda Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Fri, 13 Jan 2012 17:05:41 +0100
Subject: [PATCH] linux-user: fix segfault deadlock
@ -17,14 +17,14 @@ Example code to trigger this is at: http://csgraf.de/tmp/conftest.c
Reported-by: Fabio Erculiani <lxnay@sabayon.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
qemu-lock.h | 10 ++++++++++
user-exec.c | 4 ++++
2 files changed, 14 insertions(+), 0 deletions(-)
include/exec/spinlock.h | 10 ++++++++++
user-exec.c | 4 ++++
2 Dateien geändert, 14 Zeilen hinzugefügt(+)
diff --git a/qemu-lock.h b/qemu-lock.h
diff --git a/include/exec/spinlock.h b/include/exec/spinlock.h
index a72edda..e460e12 100644
--- a/qemu-lock.h
+++ b/qemu-lock.h
--- a/include/exec/spinlock.h
+++ b/include/exec/spinlock.h
@@ -24,6 +24,12 @@
#include <pthread.h>
#define spin_lock pthread_mutex_lock
@ -48,10 +48,10 @@ index a72edda..e460e12 100644
+
#endif
diff --git a/user-exec.c b/user-exec.c
index ef9b172..1ec5d9a 100644
index c71acbc..5783849 100644
--- a/user-exec.c
+++ b/user-exec.c
@@ -88,6 +88,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
@@ -87,6 +87,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
qemu_printf("qemu: SIGSEGV pc=0x%08lx address=%08lx w=%d oldset=0x%08lx\n",
pc, address, is_write, *(unsigned long *)old_set);
#endif

View File

@ -1,4 +1,4 @@
From b117b0b71cb9db82e92f135c7c2c6019968ee4d2 Mon Sep 17 00:00:00 2001
From e47b761826f274b0bbfbbc8febf50d61b227683f Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 2 Feb 2012 18:02:33 +0100
Subject: [PATCH] linux-user: binfmt: support host binaries
@ -9,7 +9,7 @@ trying to run, let's just use that instead as it will be a lot faster.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/binfmt.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
1 Datei geändert, 25 Zeilen hinzugefügt(+)
diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c
index cd1f513..87dc4c6 100644

View File

@ -1,4 +1,4 @@
From bb8b1492d54777f51e5a6adf003bc62f91175524 Mon Sep 17 00:00:00 2001
From 711032402abc02c9996b89ef0de080795d628c0d Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 29 May 2012 15:30:01 +0200
Subject: [PATCH] linux-user: arm: no tb_flush on reset
@ -11,10 +11,10 @@ So something in our thread creation is broken. But for now, let's revert the
change to at least get a working build again.
---
target-arm/cpu.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
1 Datei geändert, 4 Zeilen hinzugefügt(+)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index b00f5fa..740dbc3 100644
index 1c6a628..d10a71b 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -124,7 +124,11 @@ static void arm_cpu_reset(CPUState *s)

View File

@ -1,4 +1,4 @@
From 83aeb9653d0cc0c16007eeee9b8e92ff7aca2d12 Mon Sep 17 00:00:00 2001
From 8b9adb85a5c79acb4ea3465bc4913934c0edc082 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 12 Jun 2012 04:41:10 +0200
Subject: [PATCH] linux-user: Ignore broken loop ioctl
@ -15,7 +15,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
linux-user/linux_loop.h | 1 +
linux-user/syscall.c | 7 +++++++
linux-user/syscall_defs.h | 1 +
4 files changed, 10 insertions(+), 0 deletions(-)
4 Dateien geändert, 10 Zeilen hinzugefügt(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 6af0cb7..bb76c56 100644
@ -41,10 +41,10 @@ index 8974caa..810ae61 100644
#endif
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 30ee613..d62e9e6 100644
index 3db4e89..2fcf3e9 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3682,6 +3682,13 @@ out:
@@ -3697,6 +3697,13 @@ out:
return ret;
}
@ -59,10 +59,10 @@ index 30ee613..d62e9e6 100644
#define IOCTL(cmd, access, ...) \
{ TARGET_ ## cmd, cmd, #cmd, access, 0, { __VA_ARGS__ } },
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 8644f87..d708131 100644
index 7ceb56b..3cbbaa1 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -1016,6 +1016,7 @@ struct target_pollfd {
@@ -1020,6 +1020,7 @@ struct target_pollfd {
#define TARGET_LOOP_SET_STATUS64 0x4C04
#define TARGET_LOOP_GET_STATUS64 0x4C05
#define TARGET_LOOP_CHANGE_FD 0x4C06

View File

@ -1,9 +1,9 @@
From d53d69e169f1b1b7b0f4dc2e62110ffe9fdde0d3 Mon Sep 17 00:00:00 2001
From aa678a7538c7103cb616d6df216e9a83cd7c8a6a Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 25 Jun 2012 19:02:32 +0200
Subject: [PATCH] linux-user: fix segmentation fault passing with g2h(x) != x
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When forwarding a segmentation fault into the guest process, we were passing
@ -20,13 +20,13 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
user-exec.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
1 Datei geändert, 6 Zeilen hinzugefügt(+)
diff --git a/user-exec.c b/user-exec.c
index 1ec5d9a..71afbf1 100644
index 5783849..c5339af 100644
--- a/user-exec.c
+++ b/user-exec.c
@@ -98,6 +98,12 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
@@ -97,6 +97,12 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
return 1;
}

View File

@ -1,17 +1,22 @@
From fd5f1d63b3b05def9f5c02540c1ea3b194bbbac9 Mon Sep 17 00:00:00 2001
From 0df03b5be0ed970bfb4d74976460c748c5b2dbb0 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 5 Jul 2012 17:31:39 +0200
Subject: [PATCH] linux-user: lock tcg
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The tcg code generator is not thread safe. Lock its generation between
different threads.
Signed-off-by: Alexander Graf <agraf@suse.de>
[AF: Rebased onto exec.c/translate-all.c split for 1.4]
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
linux-user/mmap.c | 3 +++
tcg/tcg.c | 36 ++++++++++++++++++++++++++++++++++--
tcg/tcg.h | 6 ++++++
3 files changed, 43 insertions(+), 2 deletions(-)
3 Dateien geändert, 43 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 46523de..59718b5 100644
@ -42,15 +47,15 @@ index 46523de..59718b5 100644
}
diff --git a/tcg/tcg.c b/tcg/tcg.c
index cb193f2..ecc990d 100644
index 9275e37..c84d3ac 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -40,6 +40,8 @@
#include "cache-utils.h"
#include "host-utils.h"
#include "qemu-timer.h"
#include "qemu/cache-utils.h"
#include "qemu/host-utils.h"
#include "qemu/timer.h"
+#include "config-host.h"
+#include "qemu-thread.h"
+#include "qemu/thread.h"
/* Note: the long term plan is to reduce the dependancies on the QEMU
CPU definitions. Currently they are used for qemu_ld/st
@ -94,7 +99,7 @@ index cb193f2..ecc990d 100644
/* Count total number of arguments and allocate the corresponding
space */
total_args = 0;
@@ -2342,11 +2368,13 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf)
@@ -2341,11 +2367,13 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf)
}
#endif
@ -108,7 +113,7 @@ index cb193f2..ecc990d 100644
return s->code_ptr - gen_code_buf;
}
@@ -2357,7 +2385,11 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf)
@@ -2356,7 +2384,11 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf)
Return -1 if not found. */
int tcg_gen_code_search_pc(TCGContext *s, uint8_t *gen_code_buf, long offset)
{
@ -122,7 +127,7 @@ index cb193f2..ecc990d 100644
#ifdef CONFIG_PROFILER
diff --git a/tcg/tcg.h b/tcg/tcg.h
index 9481e35..1f56b40 100644
index a427972..9fd122e 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -46,6 +46,8 @@ typedef uint64_t tcg_target_ulong;
@ -130,11 +135,11 @@ index 9481e35..1f56b40 100644
#endif
+#include "config-host.h"
+#include "qemu-thread.h"
+#include "qemu/thread.h"
#include "tcg-target.h"
#include "tcg-runtime.h"
@@ -462,6 +464,7 @@ struct TCGContext {
@@ -468,6 +470,7 @@ struct TCGContext {
TCGLabelQemuLdst *qemu_ldst_labels;
int nb_qemu_ldst_labels;
#endif
@ -142,7 +147,7 @@ index 9481e35..1f56b40 100644
};
extern TCGContext tcg_ctx;
@@ -641,6 +644,9 @@ void tcg_gen_shifti_i64(TCGv_i64 ret, TCGv_i64 arg1,
@@ -647,6 +650,9 @@ void tcg_gen_shifti_i64(TCGv_i64 ret, TCGv_i64 arg1,
TCGArg *tcg_optimize(TCGContext *s, uint16_t *tcg_opc_ptr, TCGArg *args,
TCGOpDef *tcg_op_def);

View File

@ -1,4 +1,4 @@
From ffc5a9a892bd9c308317cff9eec6b1dc5cc08bb9 Mon Sep 17 00:00:00 2001
From ba003fddbaefa737fce9ea522ae38bff6b730b20 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 10 Jul 2012 20:40:55 +0200
Subject: [PATCH] linux-user: Run multi-threaded code on a single core
@ -16,13 +16,13 @@ This gets Java 1.7 working for me again on my test box.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/syscall.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
1 Datei geändert, 9 Zeilen hinzugefügt(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d62e9e6..5295afb 100644
index 2fcf3e9..19c635c 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4400,6 +4400,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp,
@@ -4415,6 +4415,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp,
if (nptl_flags & CLONE_SETTLS)
cpu_set_tls (new_env, newtls);

View File

@ -1,28 +1,32 @@
From 39b101ab3190d5ebc85e962ae5c4de885623a9f2 Mon Sep 17 00:00:00 2001
From 832a0e774e2c25c28e208f5015cd9139e367513d Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 11 Jul 2012 16:47:42 +0200
Subject: [PATCH] linux-user: lock tb flushing too
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Alexander Graf <agraf@suse.de>
[AF: Rebased onto exec.c/translate-all.c split for 1.4]
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
exec.c | 33 ++++++++++++++++++++++++++-------
1 files changed, 26 insertions(+), 7 deletions(-)
translate-all.c | 20 ++++++++++++++++++--
1 Datei geändert, 18 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
diff --git a/exec.c b/exec.c
index 8971d61..ee22e2c 100644
--- a/exec.c
+++ b/exec.c
@@ -736,17 +736,22 @@ static TranslationBlock *tb_alloc(target_ulong pc)
diff --git a/translate-all.c b/translate-all.c
index 0d6c5a9..1066017 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -625,18 +625,22 @@ static TranslationBlock *tb_alloc(target_ulong pc)
{
TranslationBlock *tb;
+ tcg_lock();
if (nb_tbs >= code_gen_max_blocks ||
- (code_gen_ptr - code_gen_buffer) >= code_gen_buffer_max_size)
+ (code_gen_ptr - code_gen_buffer) >= code_gen_buffer_max_size) {
(code_gen_ptr - code_gen_buffer) >= code_gen_buffer_max_size) {
+ tcg_unlock();
return NULL;
+ }
}
tb = &tbs[nb_tbs++];
tb->pc = pc;
tb->cflags = 0;
@ -36,7 +40,7 @@ index 8971d61..ee22e2c 100644
/* In practice this is mostly used for single use temporary TB
Ignore the hard cases and just back up if this TB happens to
be the last one generated. */
@@ -754,6 +759,7 @@ void tb_free(TranslationBlock *tb)
@@ -644,6 +648,7 @@ void tb_free(TranslationBlock *tb)
code_gen_ptr = tb->tc_ptr;
nb_tbs--;
}
@ -44,15 +48,15 @@ index 8971d61..ee22e2c 100644
}
static inline void invalidate_page_bitmap(PageDesc *p)
@@ -807,6 +813,7 @@ void tb_flush(CPUArchState *env1)
@@ -700,6 +705,7 @@ void tb_flush(CPUArchState *env1)
nb_tbs, nb_tbs > 0 ?
((unsigned long)(code_gen_ptr - code_gen_buffer)) / nb_tbs : 0);
#endif
+ tcg_lock();
if ((unsigned long)(code_gen_ptr - code_gen_buffer) > code_gen_buffer_size)
if ((unsigned long)(code_gen_ptr - code_gen_buffer)
> code_gen_buffer_size) {
cpu_abort(env1, "Internal error: code buffer overflow\n");
@@ -823,6 +830,7 @@ void tb_flush(CPUArchState *env1)
@@ -717,6 +723,7 @@ void tb_flush(CPUArchState *env1)
/* XXX: flush processor icache at this point if cache flush is
expensive */
tb_flush_count++;
@ -60,21 +64,18 @@ index 8971d61..ee22e2c 100644
}
#ifdef DEBUG_TB_CHECK
@@ -1122,9 +1130,12 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
@@ -1020,8 +1027,10 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
int current_flags = 0;
#endif /* TARGET_HAS_PRECISE_SMC */
+ tcg_lock();
p = page_find(start >> TARGET_PAGE_BITS);
- if (!p)
+ if (!p) {
if (!p) {
+ tcg_unlock();
return;
+ }
}
if (!p->code_bitmap &&
++p->code_write_count >= SMC_BITMAP_USE_THRESHOLD &&
is_cpu_write_access) {
@@ -1208,6 +1219,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
@@ -1109,6 +1118,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
cpu_resume_from_signal(env, NULL);
}
#endif
@ -82,37 +83,33 @@ index 8971d61..ee22e2c 100644
}
/* len must be <= 8 and start must be a multiple of len */
@@ -1414,12 +1426,16 @@ TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
@@ -1323,13 +1333,16 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
{
int m_min, m_max, m;
uintptr_t v;
- TranslationBlock *tb;
+ TranslationBlock *tb, *r;
- if (nb_tbs <= 0)
+ tcg_lock();
+ if (nb_tbs <= 0) {
if (nb_tbs <= 0) {
+ tcg_unlock();
return NULL;
+ }
}
if (tc_ptr < (uintptr_t)code_gen_buffer ||
tc_ptr >= (uintptr_t)code_gen_ptr) {
+ tcg_unlock();
return NULL;
}
/* binary search (cf Knuth) */
@@ -1429,15 +1445,18 @@ TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
m = (m_min + m_max) >> 1;
@@ -1340,6 +1353,7 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
tb = &tbs[m];
v = (uintptr_t)tb->tc_ptr;
- if (v == tc_ptr)
+ if (v == tc_ptr) {
if (v == tc_ptr) {
+ tcg_unlock();
return tb;
- else if (tc_ptr < v) {
+ } else if (tc_ptr < v) {
} else if (tc_ptr < v) {
m_max = m - 1;
} else {
@@ -1347,7 +1361,9 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
m_min = m + 1;
}
}

View File

@ -1,4 +1,4 @@
From d2c0f676f29147107d0650116b9e0d76fa707458 Mon Sep 17 00:00:00 2001
From 939d4d3d025f1ef0d00cd79db659353a7991bcf7 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 23 Jul 2012 10:24:14 +0200
Subject: [PATCH] linux-user: Fake /proc/cpuinfo
@ -14,13 +14,13 @@ has happened.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/syscall.c | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
1 Datei geändert, 20 Zeilen hinzugefügt(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 5295afb..034cd5a 100644
index 19c635c..97a7689 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5083,6 +5083,25 @@ static int open_self_stat(void *cpu_env, int fd)
@@ -5114,6 +5114,25 @@ static int open_self_stat(void *cpu_env, int fd)
return 0;
}
@ -46,7 +46,7 @@ index 5295afb..034cd5a 100644
static int open_self_auxv(void *cpu_env, int fd)
{
TaskState *ts = ((CPUArchState *)cpu_env)->opaque;
@@ -5123,6 +5142,7 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode)
@@ -5154,6 +5173,7 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode)
{ "/proc/self/maps", open_self_maps },
{ "/proc/self/stat", open_self_stat },
{ "/proc/self/auxv", open_self_auxv },

View File

@ -1,31 +1,37 @@
From 8d211b0e9eea14ea4e2934e161d45e1d91250c36 Mon Sep 17 00:00:00 2001
From 01c6cc825e3cac5fb863510eac1daa6129a3809b Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 20 Aug 2012 00:02:52 +0200
Subject: [PATCH] linux-user: implement FS_IOC_GETFLAGS ioctl
Signed-off-by: Alexander Graf <agraf@suse.de>
---
v1 -> v2:
- use TYPE_LONG instead of TYPE_INT
---
linux-user/ioctls.h | 1 +
linux-user/syscall_defs.h | 2 ++
2 files changed, 3 insertions(+), 0 deletions(-)
2 Dateien geändert, 3 Zeilen hinzugefügt(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index bb76c56..1b798b3 100644
index bb76c56..85b5bfd 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -86,6 +86,7 @@
IOCTL_SPECIAL(FS_IOC_FIEMAP, IOC_W | IOC_R, do_ioctl_fs_ioc_fiemap,
MK_PTR(MK_STRUCT(STRUCT_fiemap)))
#endif
+ IOCTL(FS_IOC_GETFLAGS, IOC_R, MK_PTR(TYPE_INT))
+ IOCTL(FS_IOC_GETFLAGS, IOC_R, MK_PTR(TYPE_LONG))
IOCTL(SIOCATMARK, 0, TYPE_NULL)
IOCTL(SIOCADDRT, IOC_W, MK_PTR(MK_STRUCT(STRUCT_rtentry)))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index d708131..15b171f 100644
index 3cbbaa1..729c8ef 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2344,6 +2344,8 @@ struct target_eabi_flock64 {
@@ -2366,6 +2366,8 @@ struct target_eabi_flock64 {
#define TARGET_MTIOCGET TARGET_IOR('m', 2, struct mtget)
#define TARGET_MTIOCPOS TARGET_IOR('m', 3, struct mtpos)

View File

@ -1,31 +1,37 @@
From f17ca3834366f90f1c87ff90bc59ee6652d37fa2 Mon Sep 17 00:00:00 2001
From 32ac81c36cd7afe73d85799327be9215259e3a04 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 20 Aug 2012 00:07:13 +0200
Subject: [PATCH] linux-user: implement FS_IOC_SETFLAGS ioctl
Signed-off-by: Alexander Graf <agraf@suse.de>
---
v1 -> v2
- use TYPE_LONG instead of TYPE_INT
---
linux-user/ioctls.h | 1 +
linux-user/syscall_defs.h | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
2 Dateien geändert, 2 Zeilen hinzugefügt(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 1b798b3..5027c74 100644
index 85b5bfd..229cd6f 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -87,6 +87,7 @@
MK_PTR(MK_STRUCT(STRUCT_fiemap)))
#endif
IOCTL(FS_IOC_GETFLAGS, IOC_R, MK_PTR(TYPE_INT))
+ IOCTL(FS_IOC_SETFLAGS, IOC_W, MK_PTR(TYPE_INT))
IOCTL(FS_IOC_GETFLAGS, IOC_R, MK_PTR(TYPE_LONG))
+ IOCTL(FS_IOC_SETFLAGS, IOC_W, MK_PTR(TYPE_LONG))
IOCTL(SIOCATMARK, 0, TYPE_NULL)
IOCTL(SIOCADDRT, IOC_W, MK_PTR(MK_STRUCT(STRUCT_rtentry)))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 15b171f..d618414 100644
index 729c8ef..87fb53c 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2345,6 +2345,7 @@ struct target_eabi_flock64 {
@@ -2367,6 +2367,7 @@ struct target_eabi_flock64 {
#define TARGET_MTIOCPOS TARGET_IOR('m', 3, struct mtpos)
#define TARGET_FS_IOC_GETFLAGS TARGET_IORU('f', 1)

View File

@ -1,4 +1,4 @@
From 0270f2ba0e09f6bd0f1bdc57ba38e8acd206ed99 Mon Sep 17 00:00:00 2001
From 2a739a3166d049f419f6aee8f08c1ed411ca7667 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Tue, 21 Aug 2012 14:20:40 +0200
Subject: [PATCH] linux-user: XXX disable fiemap
@ -6,13 +6,13 @@ Subject: [PATCH] linux-user: XXX disable fiemap
agraf: fiemap breaks in libarchive. Disable it for now.
---
linux-user/syscall.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
1 Datei geändert, 5 Zeilen hinzugefügt(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 034cd5a..526e0f0 100644
index 97a7689..0debb13 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3302,6 +3302,11 @@ static abi_long do_ioctl_fs_ioc_fiemap(const IOCTLEntry *ie, uint8_t *buf_temp,
@@ -3317,6 +3317,11 @@ static abi_long do_ioctl_fs_ioc_fiemap(const IOCTLEntry *ie, uint8_t *buf_temp,
uint32_t outbufsz;
int free_fm = 0;

View File

@ -1,5 +1,5 @@
From ce4a86e1d33b1ca4fd3c3bd67a009e74a1dc5636 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
From 56d002180c9c6d9525663962b11d08c8b18e2b26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Wed, 29 Aug 2012 18:42:56 +0200
Subject: [PATCH] slirp: -nooutgoing
@ -9,13 +9,13 @@ TBD (from SUSE Studio team)
slirp/socket.c | 8 ++++++++
slirp/tcp_subr.c | 16 ++++++++++++++++
vl.c | 9 +++++++++
4 files changed, 43 insertions(+), 0 deletions(-)
4 Dateien geändert, 43 Zeilen hinzugefügt(+)
diff --git a/qemu-options.hx b/qemu-options.hx
index 94a1c50..9635327 100644
index a9ad8cf..a4b5436 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -2426,6 +2426,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
@@ -2456,6 +2456,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
from a script.
ETEXI
@ -107,10 +107,10 @@ index 1542e43..a25d949 100644
if (so->so_faddr.s_addr == 0 ||
(so->so_faddr.s_addr & loopback_mask) ==
diff --git a/vl.c b/vl.c
index a13012e..b971e68 100644
index 66c2a9b..848e312 100644
--- a/vl.c
+++ b/vl.c
@@ -217,6 +217,7 @@ const char *vnc_display;
@@ -219,6 +219,7 @@ const char *vnc_display;
int acpi_enabled = 1;
int no_hpet = 0;
int fd_bootchk = 1;
@ -118,7 +118,7 @@ index a13012e..b971e68 100644
static int no_reboot;
int no_shutdown = 0;
int cursor_hide = 1;
@@ -2969,6 +2970,14 @@ int main(int argc, char **argv, char **envp)
@@ -3252,6 +3253,14 @@ int main(int argc, char **argv, char **envp)
case QEMU_OPTION_singlestep:
singlestep = 1;
break;

View File

@ -1,15 +1,15 @@
From 1915e62ecadb41ebd1fcc563afe4f6c0dea8f43b Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
From 6826a854e93cdfc0f0e82aa1af334409b767fcbb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
Date: Wed, 29 Aug 2012 20:06:01 +0200
Subject: [PATCH] vnc: password-file= and incoming-connections=
TBD (from SUSE Studio team)
---
ui/vnc.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 0 deletions(-)
1 Datei geändert, 71 Zeilen hinzugefügt(+)
diff --git a/ui/vnc.c b/ui/vnc.c
index ba30362..d99c1bd 100644
index ff4e2ae..28a6978 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -45,6 +45,7 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 };
@ -20,15 +20,15 @@ index ba30362..d99c1bd 100644
static int vnc_cursor_define(VncState *vs);
static void vnc_release_modifiers(VncState *vs);
@@ -1019,6 +1020,7 @@ static void vnc_disconnect_start(VncState *vs)
static void vnc_disconnect_finish(VncState *vs)
@@ -1025,6 +1026,7 @@ static void vnc_disconnect_start(VncState *vs)
void vnc_disconnect_finish(VncState *vs)
{
int i;
+ static int num_disconnects = 0;
vnc_jobs_join(vs); /* Wait encoding jobs */
@@ -1064,6 +1066,13 @@ static void vnc_disconnect_finish(VncState *vs)
@@ -1078,6 +1080,13 @@ void vnc_disconnect_finish(VncState *vs)
}
g_free(vs->lossy_rect);
g_free(vs);
@ -42,7 +42,7 @@ index ba30362..d99c1bd 100644
}
int vnc_client_io_error(VncState *vs, int ret, int last_errno)
@@ -2861,6 +2870,39 @@ char *vnc_display_local_addr(DisplayState *ds)
@@ -2958,6 +2967,39 @@ char *vnc_display_local_addr(DisplayState *ds)
return vnc_socket_local_addr("%s:%s", vs->lsock);
}
@ -82,7 +82,7 @@ index ba30362..d99c1bd 100644
void vnc_display_open(DisplayState *ds, const char *display, Error **errp)
{
VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display;
@@ -2894,6 +2936,9 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp)
@@ -2991,6 +3033,9 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp)
while ((options = strchr(options, ','))) {
options++;
if (strncmp(options, "password", 8) == 0) {
@ -92,7 +92,7 @@ index ba30362..d99c1bd 100644
if (fips_get_state()) {
error_setg(errp,
"VNC password auth disabled due to FIPS mode, "
@@ -2902,6 +2947,32 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp)
@@ -2999,6 +3044,32 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp)
goto fail;
}
password = 1; /* Require password auth */

View File

@ -1,4 +1,4 @@
From e678a299901888d0187fe8c285f5635ddcd256cc Mon Sep 17 00:00:00 2001
From 9789bbaf32b054c4fdc40057b8a224f77d010c73 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 10 Oct 2012 10:21:20 +0200
Subject: [PATCH] linux-user: add more blk ioctls
@ -10,10 +10,10 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
linux-user/ioctls.h | 18 ++++++++++++++++++
linux-user/syscall_defs.h | 6 ++++++
linux-user/syscall_types.h | 3 +++
3 files changed, 27 insertions(+), 0 deletions(-)
3 Dateien geändert, 27 Zeilen hinzugefügt(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 5027c74..4522c14 100644
index 229cd6f..3323176 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -71,6 +71,24 @@
@ -42,10 +42,10 @@ index 5027c74..4522c14 100644
IOCTL(BLKRASET, 0, TYPE_INT)
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index d618414..2583dfb 100644
index 87fb53c..e428f76 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -885,6 +885,12 @@ struct target_pollfd {
@@ -889,6 +889,12 @@ struct target_pollfd {
#define TARGET_BLKGETSIZE64 TARGET_IOR(0x12,114,abi_ulong)
/* return device size in bytes
(u64 *arg) */

View File

@ -1,4 +1,4 @@
From dd9837df381040d262ffc9278a4d058360641ff9 Mon Sep 17 00:00:00 2001
From 4a0f904645a17d6a3e58263361e595fba15cbdde 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
@ -14,10 +14,10 @@ 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(-)
2 Dateien geändert, 8 Zeilen hinzugefügt(+), 8 Zeilen entfernt(-)
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 7cc7b87..88de318 100644
index 2d6f957..766bd8a 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -194,10 +194,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src,
@ -36,10 +36,10 @@ index 7cc7b87..88de318 100644
extern THREAD CPUArchState *thread_env;
void cpu_loop(CPUArchState *env);
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 526e0f0..a694181 100644
index 0debb13..5e6ac06 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5270,10 +5270,10 @@ int syscall_restartable(int syscall_nr)
@@ -5301,10 +5301,10 @@ int syscall_restartable(int syscall_nr)
/* 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>. */

View File

@ -1,7 +1,10 @@
From 33b9fbeca1bc447fd6e353a8c5129f0d3a646b91 Mon Sep 17 00:00:00 2001
From a19b832ddf9f62bd1ff2de170d1da1675c3076c6 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 5 Aug 2009 09:49:37 +0200
Subject: [PATCH] Add support for DictZip enabled gzip files
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
DictZip is an extension to the gzip format that allows random seeks in gzip
compressed files by cutting the file into pieces and storing the piece offsets
@ -19,24 +22,27 @@ Tar patch follows.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Bruce Rogers <brogers@novell.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
block/Makefile.objs | 1 +
block/dictzip.c | 566 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 567 insertions(+), 0 deletions(-)
2 Dateien geändert, 567 Zeilen hinzugefügt(+)
create mode 100644 block/dictzip.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
index 7f01510..054b06e 100644
index c067f38..3397046 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -18,3 +18,4 @@ endif
@@ -18,5 +18,6 @@ endif
common-obj-y += stream.o
common-obj-y += commit.o
common-obj-y += mirror.o
+common-obj-y += dictzip.o
$(obj)/curl.o: QEMU_CFLAGS+=$(CURL_CFLAGS)
diff --git a/block/dictzip.c b/block/dictzip.c
new file mode 100644
index 0000000..b410dd6
index 0000000..6792f80
--- /dev/null
+++ b/block/dictzip.c
@@ -0,0 +1,566 @@
@ -78,7 +84,7 @@ index 0000000..b410dd6
+ */
+
+#include "qemu-common.h"
+#include "block_int.h"
+#include "block/block_int.h"
+#include <zlib.h>
+
+// #define DEBUG

View File

@ -1,7 +1,10 @@
From ea0fed7478adeeaf13696c23493c2c6d86d73889 Mon Sep 17 00:00:00 2001
From 4362b562e7b0a2402b0c68c4fc08e6e194854c60 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 5 Aug 2009 17:28:38 +0200
Subject: [PATCH] Add tar container format
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Tar is a very widely used format to store data in. Sometimes people even put
virtual machine images in there.
@ -20,24 +23,27 @@ them.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Bruce Rogers <brogers@novell.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
block/Makefile.objs | 1 +
block/tar.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 357 insertions(+), 0 deletions(-)
2 Dateien geändert, 357 Zeilen hinzugefügt(+)
create mode 100644 block/tar.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
index 054b06e..34850e3 100644
index 3397046..48d1d30 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -19,3 +19,4 @@ common-obj-y += stream.o
@@ -19,5 +19,6 @@ common-obj-y += stream.o
common-obj-y += commit.o
common-obj-y += mirror.o
common-obj-y += dictzip.o
+common-obj-y += tar.o
$(obj)/curl.o: QEMU_CFLAGS+=$(CURL_CFLAGS)
diff --git a/block/tar.c b/block/tar.c
new file mode 100644
index 0000000..27750c7
index 0000000..3508320
--- /dev/null
+++ b/block/tar.c
@@ -0,0 +1,356 @@
@ -66,7 +72,7 @@ index 0000000..27750c7
+ */
+
+#include "qemu-common.h"
+#include "block_int.h"
+#include "block/block_int.h"
+
+// #define DEBUG
+

View File

@ -1,14 +1,14 @@
From bd6cf9e4804b30c8212fe83ca3f08b12ab4f2d80 Mon Sep 17 00:00:00 2001
From 93c36402161fc33e315224d0917f0f0ebfcb9657 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 12 Dec 2012 19:11:30 +0100
Subject: [PATCH] Legacy Patch kvm-qemu-preXX-dictzip3.patch
---
block/tar.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
1 Datei geändert, 11 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
diff --git a/block/tar.c b/block/tar.c
index 27750c7..c5b75aa 100644
index 3508320..8b9b68b 100644
--- a/block/tar.c
+++ b/block/tar.c
@@ -83,7 +83,8 @@ static int str_ends(char *str, const char *end)

View File

@ -1,17 +1,17 @@
From fba5b73038a98aa1fd602ed3f7bc5c09026afd4a Mon Sep 17 00:00:00 2001
From 60a48005a8cd3cfd231676ec58b91818e4c8bbb8 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Wed, 12 Dec 2012 19:11:31 +0100
Subject: [PATCH] Legacy Patch kvm-qemu-preXX-report-default-mac-used.patch
---
net.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
net/net.c | 22 ++++++++++++++++++++++
1 Datei geändert, 22 Zeilen hinzugefügt(+)
diff --git a/net.c b/net.c
index e8ae13e..e181e50 100644
--- a/net.c
+++ b/net.c
@@ -138,6 +138,27 @@ void qemu_format_nic_info_str(NetClientState *nc, uint8_t macaddr[6])
diff --git a/net/net.c b/net/net.c
index 9806862..56116df 100644
--- a/net/net.c
+++ b/net/net.c
@@ -139,6 +139,27 @@ void qemu_format_nic_info_str(NetClientState *nc, uint8_t macaddr[6])
macaddr[3], macaddr[4], macaddr[5]);
}
@ -39,7 +39,7 @@ index e8ae13e..e181e50 100644
void qemu_macaddr_default_if_unset(MACAddr *macaddr)
{
static int index = 0;
@@ -1010,6 +1031,7 @@ int net_init_clients(void)
@@ -1127,6 +1148,7 @@ int net_init_clients(void)
if (qemu_opts_foreach(net, net_init_client, NULL, 1) == -1) {
return -1;
}

View File

@ -1,4 +1,4 @@
From 45c73a5a93f98bf1264d6678648a6e7392a0c7b1 Mon Sep 17 00:00:00 2001
From ad88a858769ba3b4b4651072608c6814dac3a973 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 6 Jun 2011 06:53:52 +0200
Subject: [PATCH] console: add question-mark escape operator
@ -12,14 +12,14 @@ outputting guest serial consoles to the graphical console emulator.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
console.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
ui/console.c | 2 +-
1 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-)
diff --git a/console.c b/console.c
index 048b48e..079f638 100644
--- a/console.c
+++ b/console.c
@@ -950,7 +950,7 @@ static void console_putchar(QemuConsole *s, int ch)
diff --git a/ui/console.c b/ui/console.c
index d880ebf..587dcbb 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -951,7 +951,7 @@ static void console_putchar(QemuConsole *s, int ch)
} else {
if (s->nb_esc_params < MAX_ESC_PARAMS)
s->nb_esc_params++;

View File

@ -1,4 +1,4 @@
From afd30877ef2291d742fc1b57e24d80de8673b22c Mon Sep 17 00:00:00 2001
From 41aafd3480af2b08468c11fca4f651f42994b7d6 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 1 Apr 2010 17:36:23 +0200
Subject: [PATCH] Make char muxer more robust wrt small FIFOs
@ -19,13 +19,13 @@ it polls again after a while to check if the guest is now receiving input.
This patch fixes input when using -nographic on s390 for me.
---
qemu-char.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
1 Datei geändert, 16 Zeilen hinzugefügt(+)
diff --git a/qemu-char.c b/qemu-char.c
index 242b799..00e1b51 100644
index a3ba021..7aa5766 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -241,6 +241,9 @@ typedef struct {
@@ -240,6 +240,9 @@ typedef struct {
IOEventHandler *chr_event[MAX_MUX];
void *ext_opaque[MAX_MUX];
CharDriverState *drv;
@ -35,7 +35,7 @@ index 242b799..00e1b51 100644
int focus;
int mux_cnt;
int term_got_escape;
@@ -397,6 +400,15 @@ static void mux_chr_accept_input(CharDriverState *chr)
@@ -396,6 +399,15 @@ static void mux_chr_accept_input(CharDriverState *chr)
d->chr_read[m](d->ext_opaque[m],
&d->buffer[m][d->cons[m]++ & MUX_BUFFER_MASK], 1);
}
@ -51,7 +51,7 @@ index 242b799..00e1b51 100644
}
static int mux_chr_can_read(void *opaque)
@@ -479,6 +491,10 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
@@ -478,6 +490,10 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
chr->opaque = d;
d->drv = drv;
d->focus = -1;

View File

@ -1,4 +1,4 @@
From 9b90b7e01f2f4d474e68a43b5f1b2e821dfa8619 Mon Sep 17 00:00:00 2001
From 185e3a7781793d5965b98edac33e7a02923bee09 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 13 Dec 2012 14:29:22 +0100
Subject: [PATCH] linux-user: lseek: explicitly cast end offsets to signed
@ -13,13 +13,13 @@ absolute position which we need to maintain as unsigned.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/syscall.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
1 Datei geändert, 7 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index a694181..a038cbe 100644
index 5e6ac06..bed73f3 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5597,9 +5597,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
@@ -5628,9 +5628,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
case TARGET_NR_oldstat:
goto unimplemented;
#endif

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:878055ec05bc28fecfe2da97eb8bc992e8635575b67cebdfc5ca1ede171140a8
size 10286423

3
qemu-1.4.0-rc1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5ceccc6788e03a988b37ec1fc3ef506a3c53cd4daeb27152868904af51bcbf7d
size 10411624

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Sun Feb 10 14:27:36 UTC 2013 - afaerber@suse.de
- Update to v1.4.0-rc1: See http://wiki.qemu.org/ChangeLog/1.4
* Adapt update_git.sh accordingly
- Update update_git.sh to reference github.com/openSUSE/qemu.git
-------------------------------------------------------------------
Thu Dec 13 13:30:57 UTC 2012 - agraf@suse.com

View File

@ -1,7 +1,7 @@
#
# spec file for package qemu
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -21,9 +21,9 @@ Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ ; MIT
Group: System/Emulators/PC
Version: 1.3.0
Version: 1.4.0rc1
Release: 0
Source: %name-%version.tar.bz2
Source: %name-1.4.0-rc1.tar.bz2
Patch0001: 0001-Handle-CPU-interrupts-by-inline-che.patch
Patch0002: 0002-XXX-dont-dump-core-on-sigabort.patc.patch
Patch0003: 0003-XXX-work-around-SA_RESTART-race-wit.patch
@ -180,7 +180,7 @@ emulations. This can be used together with the OBS build script to
run cross-architecture builds.
%prep
%setup -q #-n %name-1.3.0-rc1
%setup -q -n %name-1.4.0-rc1
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1

View File

@ -21,9 +21,9 @@ Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ ; MIT
Group: System/Emulators/PC
Version: 1.3.0
Version: 1.4.0rc1
Release: 0
Source: %name-%version.tar.bz2
Source: %name-1.4.0-rc1.tar.bz2
PATCH_FILES
# this is to make lint happy
Source300: rpmlintrc
@ -142,7 +142,7 @@ emulations. This can be used together with the OBS build script to
run cross-architecture builds.
%prep
%setup -q #-n %name-1.3.0-rc1
%setup -q -n %name-1.4.0-rc1
PATCH_EXEC
%build

View File

@ -10,10 +10,10 @@
# That way we can easily rebase against the next stable release
# when it comes.
GIT_TREE=git://repo.or.cz/qemu/agraf.git
GIT_TREE=git://github.com/openSUSE/qemu.git
GIT_LOCAL_TREE=/suse/agraf/git/qemu
GIT_BRANCH=suse-1.3
GIT_UPSTREAM_TAG=v1.3.0
GIT_BRANCH=opensuse-1.4
GIT_UPSTREAM_TAG=v1.4.0-rc1
QEMU_TMP=/dev/shm/qemu-tmp
# clean up