SHA256
1
0
forked from pool/qemu

Accepting request 175663 from home:a_faerber:branches:Virtualization

Update to v1.5.0-rc1

OBS-URL: https://build.opensuse.org/request/show/175663
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=134
This commit is contained in:
Andreas Färber 2013-05-14 20:46:08 +00:00 committed by Git OBS Bridge
parent 8b490224bb
commit aff3246f05
45 changed files with 451 additions and 625 deletions

View File

@ -1,231 +0,0 @@
From e076316356911dae5ae97af90710e28fabb416cd 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
Fix the nasty TCG race conditions and crashes by implementing cpu_exit
as setting a flag which is checked at the start of each TB. This is
slightly slower than the attempt to have cpu_exit alter the graph of
TBs, but it doesn't crash if a thread or signal handler calls cpu_exit
while the execution thread is itself modifying the TB graph.
This version of the patch includes command line option "-no-stopflag"
which reverts to the previous racy behaviour. This is intended for
convenience in testing and comparative benchmarking and won't be
in the final patch.
It's probably worth experimenting with whether the flag-testing
code has the branch in a sense which confuses branch-prediction
and thus whether flipping it might change performance.
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 | 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 19ebb4a..02d8d69 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -597,7 +597,16 @@ int cpu_exec(CPUArchState *env)
tc_ptr = tb->tc_ptr;
/* execute the generated code */
next_tb = tcg_qemu_tb_exec(env, tc_ptr);
- if ((next_tb & 3) == 2) {
+ if ((next_tb & 3) == 3) {
+ /* hit stopflag check */
+ tb = (TranslationBlock *)(long)(next_tb & ~3);
+ /* Restore PC. */
+ cpu_pc_from_tb(env, tb);
+ next_tb = 0;
+ env->exit_request = 0;
+ env->exception_index = EXCP_INTERRUPT;
+ cpu_loop_exit(env);
+ } else if ((next_tb & 3) == 2) {
/* Instruction counter expired. */
int insns_left;
tb = (TranslationBlock *)(next_tb & ~3);
diff --git a/exec.c b/exec.c
index b85508b..9458672 100644
--- a/exec.c
+++ b/exec.c
@@ -79,6 +79,8 @@ DEFINE_TLS(CPUArchState *,cpu_single_env);
1 = Precise instruction counting.
2 = Adaptive rate instruction counting. */
int use_icount;
+/* 1 to do cpu_exit by inline flag check rather than tb link breaking */
+int use_stopflag = 1;
#if !defined(CONFIG_USER_ONLY)
@@ -493,7 +495,9 @@ void cpu_reset_interrupt(CPUArchState *env, int mask)
void cpu_exit(CPUArchState *env)
{
env->exit_request = 1;
- cpu_unlink_tb(env);
+ if (!use_stopflag) {
+ cpu_unlink_tb(env);
+ }
}
void cpu_abort(CPUArchState *env, const char *fmt, ...)
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. */
+extern int use_stopflag;
+
static TCGArg *icount_arg;
static int icount_label;
+static int stopflag_label;
static inline void gen_icount_start(void)
{
TCGv_i32 count;
+ if (use_stopflag) {
+ TCGv_i32 flag;
+ stopflag_label = gen_new_label();
+ flag = tcg_temp_local_new_i32();
+ tcg_gen_ld_i32(flag, cpu_env, offsetof(CPUArchState, exit_request));
+ tcg_gen_brcondi_i32(TCG_COND_NE, flag, 0, stopflag_label);
+ tcg_temp_free_i32(flag);
+ }
+
if (!use_icount)
return;
@@ -29,6 +41,10 @@ static inline void gen_icount_start(void)
static void gen_icount_end(TranslationBlock *tb, int num_insns)
{
+ if (use_stopflag) {
+ gen_set_label(stopflag_label);
+ tcg_gen_exit_tb((long)tb + 3); // XXX
+ }
if (use_icount) {
*icount_arg = num_insns;
gen_set_label(icount_label);
diff --git a/linux-user/main.c b/linux-user/main.c
index 3df8aa2..d83f79f 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -69,6 +69,7 @@ unsigned long reserved_va;
#endif
static void usage(void);
+extern int use_stopflag;
static const char *interp_prefix = CONFIG_QEMU_INTERP_PREFIX;
const char *qemu_uname_release = CONFIG_UNAME_RELEASE;
@@ -3241,6 +3242,11 @@ static void handle_arg_reserved_va(const char *arg)
}
#endif
+static void handle_arg_nostopflag(const char *arg)
+{
+ use_stopflag = 0;
+}
+
static void handle_arg_singlestep(const char *arg)
{
singlestep = 1;
@@ -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"},
+ {"no-stopflag", "QEMU_NOSTOPFLAG", false, handle_arg_nostopflag,
+ "", "run in singlestep mode"},
{"p", "QEMU_PAGESIZE", true, handle_arg_pagesize,
"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 9d7131a..6481175 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -1266,6 +1266,15 @@ STEXI
Disable HPET support.
ETEXI
+DEF("no-stopflag", 0, QEMU_OPTION_no_stopflag,
+ "-no-stopflag use old behaviour, not inline stopflag checks\n", QEMU_ARCH_ALL)
+STEXI
+@item -no-stopflag
+@findex -no-stopflag
+Implement cpu-exit by the old tb link breaking method rather than inline checks
+(this is slightly faster but racy!)
+ETEXI
+
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 1355f69..7500e19 100644
--- a/vl.c
+++ b/vl.c
@@ -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;
@@ -3507,6 +3509,9 @@ int main(int argc, char **argv, char **envp)
qdev_prop_register_global_list(slew_lost_ticks);
break;
}
+ case QEMU_OPTION_no_stopflag:
+ use_stopflag = 0;
+ break;
case QEMU_OPTION_acpitable:
do_acpitable_option(optarg);
break;

View File

@ -1,14 +1,14 @@
From e27020b2bbc4cdd8ccf11f583c50c6d806551c02 Mon Sep 17 00:00:00 2001
From 1f095fdb60dcab75258ab6da148e424fdd4da986 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 Datei geändert, 6 Zeilen hinzugefügt(+)
1 file changed, 6 insertions(+)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 67c2311..20c9b4d 100644
index 1055507..7af7caa 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,21 +1,21 @@
From 222f64d3405568785eb8685dfec0f4afc9590e70 Mon Sep 17 00:00:00 2001
From e60551e54f52f76a75a6809b33ff252da44df260 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)
[AF: CPUState -> CPUArchState, adapt to reindentation]
---
linux-user/main.c | 25 +++++++++-----
linux-user/main.c | 25 +++++++++------
linux-user/qemu.h | 3 ++
linux-user/signal.c | 22 ++++++++++++
linux-user/syscall.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++-
4 Dateien geändert, 130 Zeilen hinzugefügt(+), 10 Zeilen entfernt(-)
linux-user/signal.c | 22 +++++++++++++
linux-user/syscall.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++-
4 files changed, 130 insertions(+), 10 deletions(-)
diff --git a/linux-user/main.c b/linux-user/main.c
index d83f79f..800e585 100644
index b97b8cf..7ce4488 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -839,15 +839,22 @@ void cpu_loop(CPUARMState *env)
@@ -840,15 +840,22 @@ void cpu_loop(CPUARMState *env)
break;
}
} else {
@ -69,7 +69,7 @@ index b10e957..2d6f957 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 20c9b4d..66ab9c9 100644
index 7af7caa..dd81bc6 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -25,6 +25,7 @@
@ -118,10 +118,10 @@ index 20c9b4d..66ab9c9 100644
ignore state to avoid getting unexpected interrupted
syscalls */
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 9e31ea7..512fc4c 100644
index 30e93bc..1d3406f 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5165,6 +5165,87 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode)
@@ -5185,6 +5185,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 9e31ea7..512fc4c 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>. */
@@ -5177,6 +5258,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -5197,6 +5278,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 9e31ea7..512fc4c 100644
#ifdef DEBUG
gemu_log("syscall %d", num);
@@ -8174,7 +8261,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -8255,7 +8342,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 9e31ea7..512fc4c 100644
}
switch(arg2) {
@@ -8931,6 +9018,7 @@ fail:
@@ -9034,6 +9121,7 @@ fail:
#endif
if(do_strace)
print_syscall_ret(num, ret);

View File

@ -1,4 +1,4 @@
From a598fe5c4e45ee9b760217f6f2f18c733e6dbee6 Mon Sep 17 00:00:00 2001
From 60f177c52518ec81e2d2d97e7f8403362bdc5102 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 Datei geändert, 20 Zeilen hinzugefügt(+), 17 Zeilen entfernt(-)
1 file changed, 20 insertions(+), 17 deletions(-)
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 982af97c7e43ceb9871e1fedef914d7af07f960f Mon Sep 17 00:00:00 2001
From b68142d76b38d246d8493a2ad8ebf7c0ca1a1082 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
@ -10,7 +10,7 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
---
include/exec/user/thunk.h | 3 +++
thunk.c | 21 +++++++++++++++++++++
2 Dateien geändert, 24 Zeilen hinzugefügt(+)
2 files changed, 24 insertions(+)
diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h
index 87025c3..6c35e64 100644

View File

@ -1,4 +1,4 @@
From 96d463c9c0cc6cecd420e86bc9743fe50fb692c0 Mon Sep 17 00:00:00 2001
From 151ec7ab0cc58f487f06c5fba27bb1779f99beb8 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 Dateien geändert, 3555 Zeilen hinzugefügt(+)
6 files changed, 3555 insertions(+)
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

View File

@ -1,4 +1,4 @@
From bd87dcb81d78b92bc44d8b9675352b0f3deeb255 Mon Sep 17 00:00:00 2001
From fb816518ff3bb5feeb6ee3c781ccba608db625bc 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 Datei geändert, 14 Zeilen hinzugefügt(+)
1 file changed, 14 insertions(+)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index b412e3f..46523de 100644

View File

@ -1,4 +1,4 @@
From a860db4bac653140b44b008d47d77293ec3af6ab Mon Sep 17 00:00:00 2001
From f0c2b05e40606a04891dc720436462631a8d7771 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 Datei geändert, 2 Zeilen hinzugefügt(+)
1 file changed, 2 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 512fc4c..f3670f5 100644
index 1d3406f..94eb877 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6316,6 +6316,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -6336,6 +6336,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 22b57cf9c1fa3cf0d3daddf6099b2bdba59e39a4 Mon Sep 17 00:00:00 2001
From 29a48c1892ec4869ec8771c423ec2ba92433ad41 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 Datei geändert, 6 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index f3670f5..3716eba 100644
index 94eb877..a171128 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3720,7 +3720,12 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3737,7 +3737,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 f5c84e32ad475e6fa9a89cedcbb3c8a6867c6b6f Mon Sep 17 00:00:00 2001
From d7feb52521785e77af4f2e26d63e28bd0fc9ec48 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 Datei geändert, 6 Zeilen hinzugefügt(+)
1 file changed, 6 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 3716eba..62efb75 100644
index a171128..01fbfb7 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3754,6 +3754,11 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3771,6 +3771,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 3716eba..62efb75 100644
case IOC_R:
ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp));
if (!is_error(ret)) {
@@ -3772,6 +3777,7 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3789,6 +3794,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,4 +1,4 @@
From eb0d15231c020bdf0f6d83e63088c56b1209979d Mon Sep 17 00:00:00 2001
From 1a4fd3dcd12982416b8c22c758e7e6bd9cef7b0b 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
@ -11,18 +11,18 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
[AF: Rebased onto upstream VMDK SCSI support]
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
block.c | 5 ++++-
block.c | 6 +++++-
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(-)
4 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index 50dab8e..7ea5ab4 100644
index aa9a533..f6bb061 100644
--- a/block.c
+++ b/block.c
@@ -4434,7 +4434,7 @@ void bdrv_img_create(const char *filename, const char *fmt,
char *options, uint64_t img_size, int flags, Error **errp)
@@ -4739,7 +4739,7 @@ void bdrv_img_create(const char *filename, const char *fmt,
Error **errp, bool quiet)
{
QEMUOptionParameter *param = NULL, *create_options = NULL;
- QEMUOptionParameter *backing_fmt, *backing_file, *size;
@ -30,30 +30,31 @@ index 50dab8e..7ea5ab4 100644
BlockDriverState *bs = NULL;
BlockDriver *drv, *proto_drv;
BlockDriver *backing_drv = NULL;
@@ -4542,6 +4542,9 @@ void bdrv_img_create(const char *filename, const char *fmt,
@@ -4849,6 +4849,10 @@ void bdrv_img_create(const char *filename, const char *fmt,
if (!quiet) {
printf("Formatting '%s', fmt=%s ", filename, fmt);
print_option_parameters(param);
+ scsi = get_option_parameter(param, BLOCK_OPT_SCSI);
+ if (scsi && scsi->value.n)
+ if (scsi && scsi->value.n) {
+ printf(", SCSI");
+ }
puts("");
}
ret = bdrv_create(drv, filename, param);
diff --git a/block/vmdk.c b/block/vmdk.c
index aef1abc..a64d888 100644
index 608daaf..9e0f678 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -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)) {
@@ -1557,6 +1557,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
fmt = options->value.s;
} else if (!strcmp(options->name, BLOCK_OPT_ZEROED_GRAIN)) {
zeroed_grain |= options->value.n;
+ } else if (!strcmp(options->name, BLOCK_OPT_SCSI)) {
+ flags |= options->value.n ? BLOCK_FLAG_SCSI: 0;
}
options++;
}
@@ -1587,7 +1589,7 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
@@ -1663,7 +1665,7 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
ext_desc_lines,
(flags & BLOCK_FLAG_COMPAT6 ? 6 : 4),
total_size / (int64_t)(63 * number_heads * 512), number_heads,
@ -62,9 +63,9 @@ index aef1abc..a64d888 100644
if (split || flat) {
fd = qemu_open(filename,
O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_LARGEFILE,
@@ -1694,6 +1696,11 @@ static QEMUOptionParameter vmdk_create_options[] = {
"VMDK flat extent format, can be one of "
"{monolithicSparse (default) | monolithicFlat | twoGbMaxExtentSparse | twoGbMaxExtentFlat | streamOptimized} "
@@ -1775,6 +1777,11 @@ static QEMUOptionParameter vmdk_create_options[] = {
.type = OPT_FLAG,
.help = "Enable efficient zero writes using the zeroed-grain GTE feature"
},
+ {
+ .name = BLOCK_OPT_SCSI,
@ -75,7 +76,7 @@ index aef1abc..a64d888 100644
};
diff --git a/include/block/block_int.h b/include/block/block_int.h
index eaad53e..d8cdd08 100644
index 6078dd3..1679515 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -37,6 +37,7 @@
@ -95,10 +96,10 @@ index eaad53e..d8cdd08 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 85d3740..6de3887 100644
index cd096a1..8586fc8 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -676,7 +676,7 @@ static int img_convert(int argc, char **argv)
@@ -1121,7 +1121,7 @@ static int img_convert(int argc, char **argv)
const uint8_t *buf1;
BlockDriverInfo bdi;
QEMUOptionParameter *param = NULL, *create_options = NULL;
@ -107,7 +108,7 @@ index 85d3740..6de3887 100644
char *options = NULL;
const char *snapshot_name = NULL;
float local_progress = 0;
@@ -869,6 +869,12 @@ static int img_convert(int argc, char **argv)
@@ -1323,6 +1323,12 @@ static int img_convert(int argc, char **argv)
}
}

View File

@ -1,4 +1,4 @@
From df5c62397972bf0fa79b17f1ff7b29a9dd040b2e Mon Sep 17 00:00:00 2001
From cbd80be4182a79fa966cf7f3d747f088066e59dd 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
@ -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 Dateien geändert, 73 Zeilen hinzugefügt(+), 17 Zeilen entfernt(-)
4 files changed, 73 insertions(+), 17 deletions(-)
create mode 100644 linux-user/binfmt.c
diff --git a/Makefile.target b/Makefile.target
index 760da1e..67336c4 100644
index ce4391f..1d733e0 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -31,6 +31,10 @@ PROGS+=$(QEMU_PROGW)
@ -46,10 +46,10 @@ index 760da1e..67336c4 100644
+PROGS+=$(QEMU_PROG)-binfmt
+endif
+
ifndef CONFIG_HAIKU
LIBS+=-lm
endif
@@ -85,6 +89,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user
config-target.h: config-target.h-timestamp
config-target.h-timestamp: config-target.mak
@@ -88,6 +92,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
@ -58,7 +58,7 @@ index 760da1e..67336c4 100644
endif #CONFIG_LINUX_USER
#########################################################
@@ -140,6 +146,9 @@ endif # CONFIG_SOFTMMU
@@ -138,6 +144,9 @@ endif # CONFIG_SOFTMMU
%/translate.o: QEMU_CFLAGS += $(TRANSLATE_OPT_CFLAGS)
nested-vars += obj-y
@ -68,7 +68,7 @@ index 760da1e..67336c4 100644
# This resolves all nested paths, so it must come last
include $(SRC_PATH)/Makefile.objs
@@ -158,6 +167,9 @@ $(QEMU_PROG): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
@@ -160,6 +169,9 @@ $(QEMU_PROG): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
$(call LINK,$^)
endif

View File

@ -1,29 +0,0 @@
From 333ed82a92d02ce4a2a8cdcacd61ccf5e496ff64 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-Transfer-Encoding: 8bit
Signed-off-by: Ulrich Hecht <uli@suse.de>
[AF: Merged default-configs upstream]
[AF: Merged with new or32-linux-user for v1.2]
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
configure | 2 ++
1 Datei geändert, 2 Zeilen hinzugefügt(+)
diff --git a/configure b/configure
index 8789324..72a4fed 100755
--- a/configure
+++ b/configure
@@ -978,6 +978,8 @@ microblaze-linux-user \
microblazeel-linux-user \
mips-linux-user \
mipsel-linux-user \
+mipsn32-linux-user \
+mipsn32el-linux-user \
or32-linux-user \
ppc-linux-user \
ppc64-linux-user \

View File

@ -1,4 +1,4 @@
From 44095bf17455eb7aac2b05e1303f2ddf15d1dc6a Mon Sep 17 00:00:00 2001
From efdf17b4fa5054f0e5ba2117867ee1ccde81b700 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 Datei geändert, 5 Zeilen hinzugefügt(+)
1 file changed, 5 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 62efb75..03b9f69 100644
index 01fbfb7..14c98ac 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8635,6 +8635,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -8716,6 +8716,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
break;
#endif

View File

@ -1,4 +1,4 @@
From 9571208f7c525fbaac47bfc70e322cf4934ff45e Mon Sep 17 00:00:00 2001
From d77fd1aa772fa9d9048c5cf000764d7348df017e 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 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-)
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 03b9f69..3db4e89 100644
index 14c98ac..58c5f70 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -7616,7 +7616,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -7645,7 +7645,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 d94c5b635b26cbddef7880423b641f5595ce4c02 Mon Sep 17 00:00:00 2001
From 5ebb282613d02e38e5f380b2f54b81b5b4102360 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 Datei geändert, 2 Zeilen hinzugefügt(+)
1 file changed, 2 insertions(+)
diff --git a/exec.c b/exec.c
index 9458672..9f29d6c 100644
index 19725db..d1f151f 100644
--- a/exec.c
+++ b/exec.c
@@ -862,10 +862,12 @@ static void *file_ram_alloc(RAMBlock *block,
@@ -874,10 +874,12 @@ static void *file_ram_alloc(RAMBlock *block,
return NULL;
}
@ -27,5 +27,5 @@ index 9458672..9f29d6c 100644
}
+#endif
filename = g_strdup_printf("%s/qemu_back_mem.XXXXXX", path);
/* Make name safe to use with mkstemp by replacing '/' with '_'. */
sanitized_name = g_strdup(block->mr->name);

View File

@ -1,7 +1,10 @@
From 94e5881352f191ed81a6bb6c222459d7725755e0 Mon Sep 17 00:00:00 2001
From 3e1ddf2ba13b9998d98ee450b7ea88d966796ed4 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
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When entering the guest we take a lock to ensure that nobody else messes
with our TB chaining while we're doing it. If we get a segfault inside that
@ -16,10 +19,11 @@ 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>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
include/exec/spinlock.h | 10 ++++++++++
user-exec.c | 4 ++++
2 Dateien geändert, 14 Zeilen hinzugefügt(+)
2 files changed, 14 insertions(+)
diff --git a/include/exec/spinlock.h b/include/exec/spinlock.h
index a72edda..e460e12 100644
@ -48,7 +52,7 @@ index a72edda..e460e12 100644
+
#endif
diff --git a/user-exec.c b/user-exec.c
index c71acbc..5783849 100644
index 71bd6c5..aa15bee 100644
--- a/user-exec.c
+++ b/user-exec.c
@@ -87,6 +87,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
@ -57,7 +61,7 @@ index c71acbc..5783849 100644
#endif
+
+ /* Maybe we're still holding the TB fiddling lock? */
+ spin_unlock_safe(&tb_lock);
+ spin_unlock_safe(&tcg_ctx.tb_ctx.tb_lock);
+
/* XXX: locking issue */
if (is_write && h2g_valid(address)

View File

@ -1,4 +1,4 @@
From 839fe6b37ba3fac47d7d32fb54e289ac45b91f24 Mon Sep 17 00:00:00 2001
From b45af411a0680ca399ff8b0b65c38971ea04904d 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 Datei geändert, 25 Zeilen hinzugefügt(+)
1 file changed, 25 insertions(+)
diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c
index cd1f513..87dc4c6 100644

View File

@ -1,4 +1,4 @@
From 4244e1f8514fcbd7c5426a03225357e326230095 Mon Sep 17 00:00:00 2001
From 5393a9d388a81893832ed04084d0a0335c4005ef 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 Datei geändert, 4 Zeilen hinzugefügt(+)
1 file changed, 4 insertions(+)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 1c6a628..d10a71b 100644
index 496a59f..ad60f82 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 6038afd7d50bd0d7a5e807fd0c5e7f8848913c4e Mon Sep 17 00:00:00 2001
From 3792ed25bb3bef6710dbce20a86ccc40ce58a7b1 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 Dateien geändert, 10 Zeilen hinzugefügt(+)
4 files changed, 10 insertions(+)
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 3db4e89..2fcf3e9 100644
index 58c5f70..689bd33 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3697,6 +3697,13 @@ out:
@@ -3714,6 +3714,13 @@ out:
return ret;
}

View File

@ -1,4 +1,4 @@
From bf4cf58a2681a7517b575515606eb2eb2af9bc8c Mon Sep 17 00:00:00 2001
From dc73e9aecb754e39ca51bb5636842e6f0f3d7fc1 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
@ -20,10 +20,10 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
user-exec.c | 6 ++++++
1 Datei geändert, 6 Zeilen hinzugefügt(+)
1 file changed, 6 insertions(+)
diff --git a/user-exec.c b/user-exec.c
index 5783849..c5339af 100644
index aa15bee..2fe945a 100644
--- a/user-exec.c
+++ b/user-exec.c
@@ -97,6 +97,12 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,

View File

@ -1,4 +1,4 @@
From f3548a9a74d21c045902d93e303c14104f29adb4 Mon Sep 17 00:00:00 2001
From deec99e294d9bac46901369a50b693170548d5b9 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
@ -16,7 +16,7 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
linux-user/mmap.c | 3 +++
tcg/tcg.c | 36 ++++++++++++++++++++++++++++++++++--
tcg/tcg.h | 6 ++++++
3 Dateien geändert, 43 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
3 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 46523de..59718b5 100644
@ -47,7 +47,7 @@ index 46523de..59718b5 100644
}
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 9275e37..c84d3ac 100644
index 1d8099c..51cf7b9 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -40,6 +40,8 @@
@ -99,7 +99,7 @@ index 9275e37..c84d3ac 100644
/* Count total number of arguments and allocate the corresponding
space */
total_args = 0;
@@ -2341,11 +2367,13 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf)
@@ -2363,11 +2389,13 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf)
}
#endif
@ -113,7 +113,7 @@ index 9275e37..c84d3ac 100644
return s->code_ptr - gen_code_buf;
}
@@ -2356,7 +2384,11 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf)
@@ -2378,7 +2406,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)
{
@ -127,7 +127,7 @@ index 9275e37..c84d3ac 100644
#ifdef CONFIG_PROFILER
diff --git a/tcg/tcg.h b/tcg/tcg.h
index a427972..9fd122e 100644
index df375cf..3d16a31 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -46,6 +46,8 @@ typedef uint64_t tcg_target_ulong;
@ -139,7 +139,7 @@ index a427972..9fd122e 100644
#include "tcg-target.h"
#include "tcg-runtime.h"
@@ -468,6 +470,7 @@ struct TCGContext {
@@ -487,6 +489,7 @@ struct TCGContext {
TCGLabelQemuLdst *qemu_ldst_labels;
int nb_qemu_ldst_labels;
#endif
@ -147,7 +147,7 @@ index a427972..9fd122e 100644
};
extern TCGContext tcg_ctx;
@@ -647,6 +650,9 @@ void tcg_gen_shifti_i64(TCGv_i64 ret, TCGv_i64 arg1,
@@ -666,6 +669,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 f269ffe946bf4402dd538074a80debd0f2d51452 Mon Sep 17 00:00:00 2001
From e08016b4b3af23f8d796bf0adf258670bc92a5da 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 Datei geändert, 9 Zeilen hinzugefügt(+)
1 file changed, 9 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 2fcf3e9..19c635c 100644
index 689bd33..38cee23 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4415,6 +4415,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp,
@@ -4434,6 +4434,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,4 +1,4 @@
From 431480a9ea14835d9cff4c5564e90a36595f3af3 Mon Sep 17 00:00:00 2001
From 5f1e423a2a86ac9528fe2b8ce86ede4d1a23e4bf 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
@ -11,23 +11,24 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
translate-all.c | 20 ++++++++++++++++++--
1 Datei geändert, 18 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/translate-all.c b/translate-all.c
index 0d6c5a9..1066017 100644
index da93608..7e2e6fc 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -625,18 +625,22 @@ static TranslationBlock *tb_alloc(target_ulong pc)
@@ -611,19 +611,23 @@ 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) {
if (tcg_ctx.tb_ctx.nb_tbs >= tcg_ctx.code_gen_max_blocks ||
(tcg_ctx.code_gen_ptr - tcg_ctx.code_gen_buffer) >=
tcg_ctx.code_gen_buffer_max_size) {
+ tcg_unlock();
return NULL;
}
tb = &tbs[nb_tbs++];
tb = &tcg_ctx.tb_ctx.tbs[tcg_ctx.tb_ctx.nb_tbs++];
tb->pc = pc;
tb->cflags = 0;
+ tcg_unlock();
@ -40,31 +41,31 @@ index 0d6c5a9..1066017 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. */
@@ -644,6 +648,7 @@ void tb_free(TranslationBlock *tb)
code_gen_ptr = tb->tc_ptr;
nb_tbs--;
@@ -632,6 +636,7 @@ void tb_free(TranslationBlock *tb)
tcg_ctx.code_gen_ptr = tb->tc_ptr;
tcg_ctx.tb_ctx.nb_tbs--;
}
+ tcg_unlock();
}
static inline void invalidate_page_bitmap(PageDesc *p)
@@ -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);
@@ -689,6 +694,7 @@ void tb_flush(CPUArchState *env1)
((unsigned long)(tcg_ctx.code_gen_ptr - tcg_ctx.code_gen_buffer)) /
tcg_ctx.tb_ctx.nb_tbs : 0);
#endif
+ tcg_lock();
if ((unsigned long)(code_gen_ptr - code_gen_buffer)
> code_gen_buffer_size) {
if ((unsigned long)(tcg_ctx.code_gen_ptr - tcg_ctx.code_gen_buffer)
> tcg_ctx.code_gen_buffer_size) {
cpu_abort(env1, "Internal error: code buffer overflow\n");
@@ -717,6 +723,7 @@ void tb_flush(CPUArchState *env1)
@@ -707,6 +713,7 @@ void tb_flush(CPUArchState *env1)
/* XXX: flush processor icache at this point if cache flush is
expensive */
tb_flush_count++;
tcg_ctx.tb_ctx.tb_flush_count++;
+ tcg_unlock();
}
#ifdef DEBUG_TB_CHECK
@@ -1020,8 +1027,10 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
@@ -1012,8 +1019,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 */
@ -75,7 +76,7 @@ index 0d6c5a9..1066017 100644
return;
}
if (!p->code_bitmap &&
@@ -1109,6 +1118,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
@@ -1104,6 +1113,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
cpu_resume_from_signal(env, NULL);
}
#endif
@ -91,18 +92,18 @@ index 0d6c5a9..1066017 100644
+ TranslationBlock *tb, *r;
+ tcg_lock();
if (nb_tbs <= 0) {
if (tcg_ctx.tb_ctx.nb_tbs <= 0) {
+ tcg_unlock();
return NULL;
}
if (tc_ptr < (uintptr_t)code_gen_buffer ||
tc_ptr >= (uintptr_t)code_gen_ptr) {
if (tc_ptr < (uintptr_t)tcg_ctx.code_gen_buffer ||
tc_ptr >= (uintptr_t)tcg_ctx.code_gen_ptr) {
+ tcg_unlock();
return NULL;
}
/* binary search (cf Knuth) */
@@ -1340,6 +1353,7 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
tb = &tbs[m];
tb = &tcg_ctx.tb_ctx.tbs[m];
v = (uintptr_t)tb->tc_ptr;
if (v == tc_ptr) {
+ tcg_unlock();
@ -113,10 +114,10 @@ index 0d6c5a9..1066017 100644
m_min = m + 1;
}
}
- return &tbs[m_max];
+ r = &tbs[m_max];
- return &tcg_ctx.tb_ctx.tbs[m_max];
+ r = &tcg_ctx.tb_ctx.tbs[m_max];
+ tcg_unlock();
+ return r;
}
static void tb_reset_jump_recursive(TranslationBlock *tb);
#if defined(TARGET_HAS_ICE) && !defined(CONFIG_USER_ONLY)

View File

@ -1,4 +1,4 @@
From 48d9bc9f0290bce9499cfd72246decc635c190b2 Mon Sep 17 00:00:00 2001
From c13343d84ec6fb19d390e1ea32e0271991c2eb75 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 Datei geändert, 20 Zeilen hinzugefügt(+)
1 file changed, 20 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 19c635c..97a7689 100644
index 38cee23..18c7447 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5114,6 +5114,25 @@ static int open_self_stat(void *cpu_env, int fd)
@@ -5134,6 +5134,25 @@ static int open_self_stat(void *cpu_env, int fd)
return 0;
}
@ -46,7 +46,7 @@ index 19c635c..97a7689 100644
static int open_self_auxv(void *cpu_env, int fd)
{
TaskState *ts = ((CPUArchState *)cpu_env)->opaque;
@@ -5154,6 +5173,7 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode)
@@ -5174,6 +5193,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,4 +1,4 @@
From 11eacc574bd20d110f99b1f57ed1b2c48f41b342 Mon Sep 17 00:00:00 2001
From 592844c8f941623156be44813cfd8f66e3ec0e6b 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
@ -13,7 +13,7 @@ v1 -> v2:
---
linux-user/ioctls.h | 1 +
linux-user/syscall_defs.h | 2 ++
2 Dateien geändert, 3 Zeilen hinzugefügt(+)
2 files changed, 3 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index bb76c56..85b5bfd 100644

View File

@ -1,4 +1,4 @@
From f5543bc0249dfd2d3e1545bf3717ef5d658c9100 Mon Sep 17 00:00:00 2001
From 933d6e7a60329429009a59d7b47c8481eeb9e247 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
@ -13,7 +13,7 @@ v1 -> v2
---
linux-user/ioctls.h | 1 +
linux-user/syscall_defs.h | 1 +
2 Dateien geändert, 2 Zeilen hinzugefügt(+)
2 files changed, 2 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 85b5bfd..229cd6f 100644

View File

@ -1,4 +1,4 @@
From a20945c6ee59e260e585e99fb59314d34664417c Mon Sep 17 00:00:00 2001
From 35c7135a88b55ecb267455e79af13f5a43bd4289 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 Datei geändert, 5 Zeilen hinzugefügt(+)
1 file changed, 5 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 97a7689..0debb13 100644
index 18c7447..7512b56 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3317,6 +3317,11 @@ static abi_long do_ioctl_fs_ioc_fiemap(const IOCTLEntry *ie, uint8_t *buf_temp,
@@ -3334,6 +3334,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,4 +1,4 @@
From 4cbad0ea14189331565bcc5b0a11da3ef0807d68 Mon Sep 17 00:00:00 2001
From 842d9c285712839c2b6873725a497d4e56517d40 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
@ -7,15 +7,15 @@ TBD (from SUSE Studio team)
---
qemu-options.hx | 10 ++++++++++
slirp/socket.c | 8 ++++++++
slirp/tcp_subr.c | 16 ++++++++++++++++
slirp/tcp_subr.c | 13 +++++++++++++
vl.c | 9 +++++++++
4 Dateien geändert, 43 Zeilen hinzugefügt(+)
4 files changed, 40 insertions(+)
diff --git a/qemu-options.hx b/qemu-options.hx
index 6481175..ebcb3e3 100644
index fb62b75..2cd52ab 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -2456,6 +2456,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
@@ -2568,6 +2568,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
from a script.
ETEXI
@ -33,10 +33,10 @@ index 6481175..ebcb3e3 100644
"-singlestep always run in singlestep mode\n", QEMU_ARCH_ALL)
STEXI
diff --git a/slirp/socket.c b/slirp/socket.c
index 77b0c98..94dcd9a 100644
index 8e8819c..57a45dc 100644
--- a/slirp/socket.c
+++ b/slirp/socket.c
@@ -531,6 +531,8 @@ sorecvfrom(struct socket *so)
@@ -532,6 +532,8 @@ sorecvfrom(struct socket *so)
} /* if ping packet */
}
@ -45,7 +45,7 @@ index 77b0c98..94dcd9a 100644
/*
* sendto() a socket
*/
@@ -561,6 +563,12 @@ sosendto(struct socket *so, struct mbuf *m)
@@ -562,6 +564,12 @@ sosendto(struct socket *so, struct mbuf *m)
DEBUG_MISC((dfd, " sendto()ing, addr.sin_port=%d, addr.sin_addr.s_addr=%.16s\n", ntohs(addr.sin_port), inet_ntoa(addr.sin_addr)));
@ -59,7 +59,7 @@ index 77b0c98..94dcd9a 100644
ret = sendto(so->s, m->m_data, m->m_len, 0,
(struct sockaddr *)&addr, sizeof (struct sockaddr));
diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c
index 1542e43..a25d949 100644
index e98ce1a..b56bf35 100644
--- a/slirp/tcp_subr.c
+++ b/slirp/tcp_subr.c
@@ -324,6 +324,9 @@ tcp_sockclosed(struct tcpcb *tp)
@ -84,30 +84,20 @@ index 1542e43..a25d949 100644
if( (ret = so->s = qemu_socket(AF_INET,SOCK_STREAM,0)) >= 0) {
int opt, s=so->s;
struct sockaddr_in addr;
@@ -424,6 +432,13 @@ tcp_connect(struct socket *inso)
@@ -425,6 +433,11 @@ void tcp_connect(struct socket *inso)
tcp_close(sototcpcb(so)); /* This will sofree() as well */
return;
}
+
+ if (slirp_nooutgoing && addr.sin_addr.s_addr != slirp_nooutgoing) {
+ tcp_close(sototcpcb(so)); /* This will sofree() as well */
+ close(s);
+ return;
+ }
+
socket_set_nonblock(s);
qemu_set_nonblock(s);
opt = 1;
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int));
@@ -434,6 +449,7 @@ tcp_connect(struct socket *inso)
so->so_fport = addr.sin_port;
so->so_faddr = addr.sin_addr;
+
/* Translate connections from localhost to the real hostname */
if (so->so_faddr.s_addr == 0 ||
(so->so_faddr.s_addr & loopback_mask) ==
qemu_setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int));
diff --git a/vl.c b/vl.c
index 7500e19..0e8781e 100644
index 6e6225f..174df5a 100644
--- a/vl.c
+++ b/vl.c
@@ -219,6 +219,7 @@ const char *vnc_display;
@ -118,7 +108,7 @@ index 7500e19..0e8781e 100644
static int no_reboot;
int no_shutdown = 0;
int cursor_hide = 1;
@@ -3254,6 +3255,14 @@ int main(int argc, char **argv, char **envp)
@@ -3309,6 +3310,14 @@ int main(int argc, char **argv, char **envp)
case QEMU_OPTION_singlestep:
singlestep = 1;
break;

View File

@ -1,26 +1,26 @@
From d28305c95202f5aec89ea42072eb3654b0641d5e Mon Sep 17 00:00:00 2001
From e55f9426d326546088069afd5d6175d994202aff 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 Datei geändert, 71 Zeilen hinzugefügt(+)
ui/vnc.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
diff --git a/ui/vnc.c b/ui/vnc.c
index ff4e2ae..28a6978 100644
index 89108de..9d3d7d6 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -45,6 +45,7 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 };
@@ -44,6 +44,7 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 };
#include "d3des.h"
static VncDisplay *vnc_display; /* needed for info vnc */
static DisplayChangeListener *dcl;
+static int allowed_connections = 0;
static int vnc_cursor_define(VncState *vs);
static void vnc_release_modifiers(VncState *vs);
@@ -1025,6 +1026,7 @@ static void vnc_disconnect_start(VncState *vs)
@@ -1029,6 +1030,7 @@ static void vnc_disconnect_start(VncState *vs)
void vnc_disconnect_finish(VncState *vs)
{
int i;
@ -28,7 +28,7 @@ index ff4e2ae..28a6978 100644
vnc_jobs_join(vs); /* Wait encoding jobs */
@@ -1078,6 +1080,13 @@ void vnc_disconnect_finish(VncState *vs)
@@ -1077,6 +1079,13 @@ void vnc_disconnect_finish(VncState *vs)
}
g_free(vs->lossy_rect);
g_free(vs);
@ -42,7 +42,7 @@ index ff4e2ae..28a6978 100644
}
int vnc_client_io_error(VncState *vs, int ret, int last_errno)
@@ -2958,6 +2967,39 @@ char *vnc_display_local_addr(DisplayState *ds)
@@ -3034,6 +3043,39 @@ char *vnc_display_local_addr(DisplayState *ds)
return vnc_socket_local_addr("%s:%s", vs->lsock);
}
@ -81,8 +81,8 @@ index ff4e2ae..28a6978 100644
+
void vnc_display_open(DisplayState *ds, const char *display, Error **errp)
{
VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display;
@@ -2991,6 +3033,9 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp)
VncDisplay *vs = vnc_display;
@@ -3067,6 +3109,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 ff4e2ae..28a6978 100644
if (fips_get_state()) {
error_setg(errp,
"VNC password auth disabled due to FIPS mode, "
@@ -2999,6 +3044,32 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp)
@@ -3075,6 +3120,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 4fe2d2489aed4076334776994fafbad0d8243b47 Mon Sep 17 00:00:00 2001
From 168c2d896d82bc7568cc91bbea596faf60f23450 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,7 +10,7 @@ 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 Dateien geändert, 27 Zeilen hinzugefügt(+)
3 files changed, 27 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 229cd6f..3323176 100644

View File

@ -1,4 +1,4 @@
From 7ddd99be7cb271116c6ab621e3e24da49304e4a0 Mon Sep 17 00:00:00 2001
From 1748852df5a01ac29ca08d0f52586b763983ebef 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,7 +14,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/qemu.h | 8 ++++----
linux-user/syscall.c | 8 ++++----
2 Dateien geändert, 8 Zeilen hinzugefügt(+), 8 Zeilen entfernt(-)
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 2d6f957..766bd8a 100644
@ -36,10 +36,10 @@ index 2d6f957..766bd8a 100644
extern THREAD CPUArchState *thread_env;
void cpu_loop(CPUArchState *env);
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 0debb13..5e6ac06 100644
index 7512b56..c1eceb2 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5301,10 +5301,10 @@ int syscall_restartable(int syscall_nr)
@@ -5321,10 +5321,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,4 +1,4 @@
From 4d0b9b0e8fbe282f9a4508716439a6b462047530 Mon Sep 17 00:00:00 2001
From 98f5a645d99776ca67f77414bb0db36c7fe8534c 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
@ -23,17 +23,20 @@ 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>
[TH: Use bdrv_open options instead of filename]
Signed-off-by: Tim Hardeck <thardeck@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
block/Makefile.objs | 1 +
block/dictzip.c | 566 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 Dateien geändert, 567 Zeilen hinzugefügt(+)
block/dictzip.c | 596 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 597 insertions(+)
create mode 100644 block/dictzip.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
index c067f38..3397046 100644
index 5f0358a..1bb758c 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -18,5 +18,6 @@ endif
@@ -20,5 +20,6 @@ endif
common-obj-y += stream.o
common-obj-y += commit.o
common-obj-y += mirror.o
@ -42,10 +45,10 @@ index c067f38..3397046 100644
$(obj)/curl.o: QEMU_CFLAGS+=$(CURL_CFLAGS)
diff --git a/block/dictzip.c b/block/dictzip.c
new file mode 100644
index 0000000..6792f80
index 0000000..0ef327b
--- /dev/null
+++ b/block/dictzip.c
@@ -0,0 +1,566 @@
@@ -0,0 +1,596 @@
+/*
+ * DictZip Block driver for dictzip enabled gzip files
+ *
@ -192,7 +195,20 @@ index 0000000..6792f80
+ return inflateInit2( zStream, -15 );
+}
+
+static int dictzip_open(BlockDriverState *bs, const char *filename, int flags)
+static QemuOptsList runtime_opts = {
+ .name = "dzip",
+ .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
+ .desc = {
+ {
+ .name = "filename",
+ .type = QEMU_OPT_STRING,
+ .help = "URL to the dictzip file",
+ },
+ { /* end of list */ }
+ },
+};
+
+static int dictzip_open(BlockDriverState *bs, QDict *options, int flags)
+{
+ BDRVDictZipState *s = bs->opaque;
+ const char *err = "Unknown (read error?)";
@ -209,16 +225,31 @@ index 0000000..6792f80
+ int rnd_offs;
+ int ret;
+ int i;
+ const char *fname = filename;
+ QemuOpts *opts;
+ Error *local_err = NULL;
+ const char *filename;
+
+ opts = qemu_opts_create_nofail(&runtime_opts);
+ qemu_opts_absorb_qdict(opts, options, &local_err);
+ if (error_is_set(&local_err)) {
+ qerror_report_err(local_err);
+ error_free(local_err);
+ ret = -EINVAL;
+ goto fail;
+ }
+
+ filename = qemu_opt_get(opts, "filename");
+
+ if (!strncmp(filename, "dzip://", 7))
+ fname += 7;
+ filename += 7;
+ else if (!strncmp(filename, "dzip:", 5))
+ fname += 5;
+ filename += 5;
+
+ ret = bdrv_file_open(&s->hd, fname, flags);
+ if (ret < 0)
+ ret = bdrv_file_open(&s->hd, filename, NULL, flags);
+ if (ret < 0) {
+ qemu_opts_del(opts);
+ return ret;
+ }
+
+ /* initialize zlib streams */
+ for (i = 0; i < Z_STREAM_COUNT; i++) {
@ -377,6 +408,7 @@ index 0000000..6792f80
+
+ dprintf("chunk %#x - %#x = offset %#x -> %#x\n", i * s->chunk_len, (i+1) * s->chunk_len, s->offsets[i], offset);
+ }
+ qemu_opts_del(opts);
+
+ return 0;
+
@ -385,6 +417,7 @@ index 0000000..6792f80
+ bdrv_delete(s->hd);
+ if (s->chunks)
+ g_free(s->chunks);
+ qemu_opts_del(opts);
+ return -EINVAL;
+}
+

View File

@ -1,4 +1,4 @@
From f731a5a382564aad45ca06c639a5e1e4a011ef74 Mon Sep 17 00:00:00 2001
From d2e3792b847a0ddfb7eb05ba24f8ca971b04dc36 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
@ -24,17 +24,20 @@ 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>
[TH: Use bdrv_open options instead of filename]
Signed-off-by: Tim Hardeck <thardeck@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
block/Makefile.objs | 1 +
block/tar.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 Dateien geändert, 357 Zeilen hinzugefügt(+)
block/tar.c | 386 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 387 insertions(+)
create mode 100644 block/tar.c
diff --git a/block/Makefile.objs b/block/Makefile.objs
index 3397046..48d1d30 100644
index 1bb758c..f68a7e1 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -19,5 +19,6 @@ common-obj-y += stream.o
@@ -21,5 +21,6 @@ common-obj-y += stream.o
common-obj-y += commit.o
common-obj-y += mirror.o
common-obj-y += dictzip.o
@ -43,10 +46,10 @@ index 3397046..48d1d30 100644
$(obj)/curl.o: QEMU_CFLAGS+=$(CURL_CFLAGS)
diff --git a/block/tar.c b/block/tar.c
new file mode 100644
index 0000000..3508320
index 0000000..87bf552
--- /dev/null
+++ b/block/tar.c
@@ -0,0 +1,356 @@
@@ -0,0 +1,386 @@
+/*
+ * Tar block driver
+ *
@ -200,24 +203,52 @@ index 0000000..3508320
+ sparse->end);
+}
+
+static int tar_open(BlockDriverState *bs, const char *filename, int flags)
+static QemuOptsList runtime_opts = {
+ .name = "tar",
+ .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
+ .desc = {
+ {
+ .name = "filename",
+ .type = QEMU_OPT_STRING,
+ .help = "URL to the tar file",
+ },
+ { /* end of list */ }
+ },
+};
+
+static int tar_open(BlockDriverState *bs, QDict *options, int flags)
+{
+ BDRVTarState *s = bs->opaque;
+ char header[SECTOR_SIZE];
+ char *real_file = header;
+ char *magic;
+ const char *fname = filename;
+ size_t header_offs = 0;
+ int ret;
+ QemuOpts *opts;
+ Error *local_err = NULL;
+ const char *filename;
+
+ opts = qemu_opts_create_nofail(&runtime_opts);
+ qemu_opts_absorb_qdict(opts, options, &local_err);
+ if (error_is_set(&local_err)) {
+ qerror_report_err(local_err);
+ error_free(local_err);
+ ret = -EINVAL;
+ goto fail;
+ }
+
+ filename = qemu_opt_get(opts, "filename");
+
+ if (!strncmp(filename, "tar://", 6))
+ fname += 6;
+ filename += 6;
+ else if (!strncmp(filename, "tar:", 4))
+ fname += 4;
+ filename += 4;
+
+ ret = bdrv_file_open(&s->hd, fname, flags);
+ if (ret < 0)
+ ret = bdrv_file_open(&s->hd, filename, NULL, flags);
+ if (ret < 0) {
+ qemu_opts_del(opts);
+ return ret;
+ }
+
+ /* Search the file for an image */
+
@ -281,12 +312,14 @@ index 0000000..3508320
+ }
+ tar_sparse(s, s->file_len, 1);
+ }
+ qemu_opts_del(opts);
+
+ return 0;
+
+fail:
+ fprintf(stderr, "Tar: Error opening file\n");
+ bdrv_delete(s->hd);
+ qemu_opts_del(opts);
+ return -EINVAL;
+}
+

View File

@ -1,14 +1,14 @@
From 055413d3a4ad459e39511fabdd19c010a0083b28 Mon Sep 17 00:00:00 2001
From e6b5df35d547382b84f886382dcf4e8e55f7ae5f 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 Datei geändert, 11 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/block/tar.c b/block/tar.c
index 3508320..8b9b68b 100644
index 87bf552..bf24c98 100644
--- a/block/tar.c
+++ b/block/tar.c
@@ -83,7 +83,8 @@ static int str_ends(char *str, const char *end)
@ -39,7 +39,7 @@ index 3508320..8b9b68b 100644
return retval;
}
@@ -201,12 +209,13 @@ static int tar_open(BlockDriverState *bs, const char *filename, int flags)
@@ -229,12 +237,13 @@ static int tar_open(BlockDriverState *bs, QDict *options, int flags)
bdrv_pread(s->hd, header_offs - s->file_len, s->longfile,
sizeof(s->longfile));
s->longfile[sizeof(s->longfile)-1] = '\0';

View File

@ -1,14 +1,14 @@
From 0e7f0daae9afb462ba37a6481eac1407524bb3f9 Mon Sep 17 00:00:00 2001
From 99b43e0450060382e4c748d17a97eb51c6462fbd 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/net.c | 22 ++++++++++++++++++++++
1 Datei geändert, 22 Zeilen hinzugefügt(+)
1 file changed, 22 insertions(+)
diff --git a/net/net.c b/net/net.c
index be03a8d..cc63b7e 100644
index 43a74e4..e1e7843 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])
@ -39,7 +39,7 @@ index be03a8d..cc63b7e 100644
void qemu_macaddr_default_if_unset(MACAddr *macaddr)
{
static int index = 0;
@@ -1129,6 +1150,7 @@ int net_init_clients(void)
@@ -1131,6 +1152,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 f09daebf440af834948216c7f1ff700f94c122ed Mon Sep 17 00:00:00 2001
From d1215a930822d99101a574d8d77da00ec34eac52 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
@ -13,13 +13,13 @@ outputting guest serial consoles to the graphical console emulator.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
ui/console.c | 2 +-
1 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-)
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/console.c b/ui/console.c
index 0a68836..760c817 100644
index b30853f..02d67b7 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -951,7 +951,7 @@ static void console_putchar(QemuConsole *s, int ch)
@@ -897,7 +897,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 5590ece9095a3e13b00c4910073ffcd0b03046b9 Mon Sep 17 00:00:00 2001
From d5436a2d1d30383ae565346ff5dd5f1e53effa38 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 Datei geändert, 16 Zeilen hinzugefügt(+)
1 file changed, 16 insertions(+)
diff --git a/qemu-char.c b/qemu-char.c
index e4b0f53..4931033 100644
index 64e824d..dc1c440 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -240,6 +240,9 @@ typedef struct {
@@ -270,6 +270,9 @@ typedef struct {
IOEventHandler *chr_event[MAX_MUX];
void *ext_opaque[MAX_MUX];
CharDriverState *drv;
@ -35,7 +35,7 @@ index e4b0f53..4931033 100644
int focus;
int mux_cnt;
int term_got_escape;
@@ -396,6 +399,15 @@ static void mux_chr_accept_input(CharDriverState *chr)
@@ -426,6 +429,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 e4b0f53..4931033 100644
}
static int mux_chr_can_read(void *opaque)
@@ -478,6 +490,10 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
@@ -508,6 +520,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 7626ebe1e2a0c67547d38f0ee8c483442d46c244 Mon Sep 17 00:00:00 2001
From f793d437a1d1b27f8ab326000cedc249f82153ba 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 Datei geändert, 7 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 5e6ac06..bed73f3 100644
index c1eceb2..259fed4 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5628,9 +5628,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
@@ -5648,9 +5648,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:066297ed77408fb7588889c271a85cf3c259ad55c939315988e6062d7708eda8
size 10419510

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

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

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Tue May 14 13:02:18 UTC 2013 - afaerber@suse.de
- Update to v1.5.0-rc1: Cf. http://wiki.qemu.org/ChangeLog/1.5
* Adapt update_git.sh accordingly
* TODO file no longer exists, don't try to package it
* Package qemu-mips64{,el}
-------------------------------------------------------------------
Tue May 14 14:51:20 CEST 2013 - ohering@suse.de
- Enable spice support starting from 11.4
-------------------------------------------------------------------
Tue May 7 19:56:40 UTC 2013 - afaerber@suse.de
- Update to v1.5.0-rc0: Cf. http://wiki.qemu.org/ChangeLog/1.5
* Adapt update_git.sh script
* Audio cards are now all enabled by default
-------------------------------------------------------------------
Wed Apr 24 17:15:04 UTC 2013 - afaerber@suse.de
- Enable pa and oss audio drivers, as in kvm package (bnc#737070)
- Enable hda audio card, as done in kvm package (bnc#801794)
-------------------------------------------------------------------
Mon Apr 22 18:27:18 UTC 2013 - dimstar@opensuse.org

View File

@ -21,48 +21,46 @@ Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
Version: 1.4.0
Version: 1.5.0rc1
Release: 0
Source: %name-%version.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
Patch0004: 0004-qemu-0.9.0.cvs-binfmt.patch.patch
Patch0005: 0005-qemu-cvs-alsa_bitfield.patch.patch
Patch0006: 0006-qemu-cvs-alsa_ioctl.patch.patch
Patch0007: 0007-qemu-cvs-alsa_mmap.patch.patch
Patch0008: 0008-qemu-cvs-gettimeofday.patch.patch
Patch0009: 0009-qemu-cvs-ioctl_debug.patch.patch
Patch0010: 0010-qemu-cvs-ioctl_nodirection.patch.patch
Patch0011: 0011-block-vmdk-Support-creation-of-SCSI.patch
Patch0012: 0012-configure-Enable-mipsn32-linux-user.patch
Patch0013: 0013-linux-user-add-binfmt-wrapper-for-a.patch
Patch0014: 0014-linux-user-Ignore-timer_create-sysc.patch
Patch0015: 0015-linux-user-be-silent-about-capget-f.patch
Patch0016: 0016-PPC-KVM-Disable-mmu-notifier-check..patch
Patch0017: 0017-linux-user-fix-segfault-deadlock.pa.patch
Patch0018: 0018-linux-user-binfmt-support-host-bina.patch
Patch0019: 0019-linux-user-arm-no-tb_flush-on-reset.patch
Patch0020: 0020-linux-user-Ignore-broken-loop-ioctl.patch
Patch0021: 0021-linux-user-fix-segmentation-fault-p.patch
Patch0022: 0022-linux-user-lock-tcg.patch.patch
Patch0023: 0023-linux-user-Run-multi-threaded-code-.patch
Patch0024: 0024-linux-user-lock-tb-flushing-too.pat.patch
Patch0025: 0025-linux-user-Fake-proc-cpuinfo.patch.patch
Patch0026: 0026-linux-user-implement-FS_IOC_GETFLAG.patch
Patch0027: 0027-linux-user-implement-FS_IOC_SETFLAG.patch
Patch0028: 0028-linux-user-XXX-disable-fiemap.patch.patch
Patch0029: 0029-slirp-nooutgoing.patch.patch
Patch0030: 0030-vnc-password-file-and-incoming-conn.patch
Patch0031: 0031-linux-user-add-more-blk-ioctls.patc.patch
Patch0032: 0032-linux-user-use-target_ulong.patch.patch
Patch0033: 0033-Add-support-for-DictZip-enabled-gzi.patch
Patch0034: 0034-Add-tar-container-format.patch.patch
Patch0035: 0035-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
Patch0036: 0036-Legacy-Patch-kvm-qemu-preXX-report-.patch
Patch0037: 0037-console-add-question-mark-escape-op.patch
Patch0038: 0038-Make-char-muxer-more-robust-wrt-sma.patch
Patch0039: 0039-linux-user-lseek-explicitly-cast-en.patch
Source: %name-1.5.0-rc1.tar.bz2
Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patc.patch
Patch0002: 0002-XXX-work-around-SA_RESTART-race-wit.patch
Patch0003: 0003-qemu-0.9.0.cvs-binfmt.patch.patch
Patch0004: 0004-qemu-cvs-alsa_bitfield.patch.patch
Patch0005: 0005-qemu-cvs-alsa_ioctl.patch.patch
Patch0006: 0006-qemu-cvs-alsa_mmap.patch.patch
Patch0007: 0007-qemu-cvs-gettimeofday.patch.patch
Patch0008: 0008-qemu-cvs-ioctl_debug.patch.patch
Patch0009: 0009-qemu-cvs-ioctl_nodirection.patch.patch
Patch0010: 0010-block-vmdk-Support-creation-of-SCSI.patch
Patch0011: 0011-linux-user-add-binfmt-wrapper-for-a.patch
Patch0012: 0012-linux-user-Ignore-timer_create-sysc.patch
Patch0013: 0013-linux-user-be-silent-about-capget-f.patch
Patch0014: 0014-PPC-KVM-Disable-mmu-notifier-check..patch
Patch0015: 0015-linux-user-fix-segfault-deadlock.pa.patch
Patch0016: 0016-linux-user-binfmt-support-host-bina.patch
Patch0017: 0017-linux-user-arm-no-tb_flush-on-reset.patch
Patch0018: 0018-linux-user-Ignore-broken-loop-ioctl.patch
Patch0019: 0019-linux-user-fix-segmentation-fault-p.patch
Patch0020: 0020-linux-user-lock-tcg.patch.patch
Patch0021: 0021-linux-user-Run-multi-threaded-code-.patch
Patch0022: 0022-linux-user-lock-tb-flushing-too.pat.patch
Patch0023: 0023-linux-user-Fake-proc-cpuinfo.patch.patch
Patch0024: 0024-linux-user-implement-FS_IOC_GETFLAG.patch
Patch0025: 0025-linux-user-implement-FS_IOC_SETFLAG.patch
Patch0026: 0026-linux-user-XXX-disable-fiemap.patch.patch
Patch0027: 0027-slirp-nooutgoing.patch.patch
Patch0028: 0028-vnc-password-file-and-incoming-conn.patch
Patch0029: 0029-linux-user-add-more-blk-ioctls.patc.patch
Patch0030: 0030-linux-user-use-target_ulong.patch.patch
Patch0031: 0031-Add-support-for-DictZip-enabled-gzi.patch
Patch0032: 0032-Add-tar-container-format.patch.patch
Patch0033: 0033-Legacy-Patch-kvm-qemu-preXX-dictzip.patch
Patch0034: 0034-Legacy-Patch-kvm-qemu-preXX-report-.patch
Patch0035: 0035-console-add-question-mark-escape-op.patch
Patch0036: 0036-Make-char-muxer-more-robust-wrt-sma.patch
Patch0037: 0037-linux-user-lseek-explicitly-cast-en.patch
# this is to make lint happy
Source300: rpmlintrc
Source302: bridge.conf
@ -108,7 +106,7 @@ BuildRequires: glib2-devel-static
%if 0%{?suse_version} >= 1220
BuildRequires: pcre-devel-static
%endif
%if 0%{?suse_version} >= 1210
%if 0%{?suse_version} >= 1140
%ifarch %ix86 x86_64
BuildRequires: libspice-server-devel
BuildRequires: spice-protocol-devel
@ -181,7 +179,7 @@ emulations. This can be used together with the OBS build script to
run cross-architecture builds.
%prep
%setup -q #-n %name-1.4.0-rc1
%setup -q -n %name-1.5.0-rc1
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
@ -219,8 +217,6 @@ run cross-architecture builds.
%patch0035 -p1
%patch0036 -p1
%patch0037 -p1
%patch0038 -p1
%patch0039 -p1
%build
# build QEMU
@ -228,7 +224,6 @@ mkdir -p dynamic
# build qemu-system
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
--libexecdir=%_libexecdir \
--audio-card-list="ac97 es1370 sb16 cs4231a adlib gus" \
--audio-drv-list="alsa sdl" --enable-mixemu --enable-vde \
--enable-curl \
--enable-virtfs \
@ -310,7 +305,7 @@ rm -rf ${RPM_BUILD_ROOT}
%files
%defattr(-, root, root)
%doc COPYING COPYING.LIB Changelog README TODO VERSION qemu-doc.html qemu-tech.html
%doc COPYING COPYING.LIB Changelog README VERSION qemu-doc.html qemu-tech.html
%_bindir/qemu-system-*
%doc %_mandir/man1/qemu.1.gz
%_datadir/%name
@ -351,6 +346,8 @@ rm -rf ${RPM_BUILD_ROOT}
%_bindir/qemu-mipsel
%_bindir/qemu-mipsn32
%_bindir/qemu-mipsn32el
%_bindir/qemu-mips64
%_bindir/qemu-mips64el
%_bindir/qemu-or32
%_bindir/qemu-ppc64abi32
%_bindir/qemu-ppc64

View File

@ -21,9 +21,9 @@ Url: http://www.qemu.org/
Summary: Universal CPU emulator
License: BSD-3-Clause and GPL-2.0+ and LGPL-2.1+ and MIT
Group: System/Emulators/PC
Version: 1.4.0
Version: 1.5.0rc1
Release: 0
Source: %name-%version.tar.bz2
Source: %name-1.5.0-rc1.tar.bz2
PATCH_FILES
# this is to make lint happy
Source300: rpmlintrc
@ -70,7 +70,7 @@ BuildRequires: glib2-devel-static
%if 0%{?suse_version} >= 1220
BuildRequires: pcre-devel-static
%endif
%if 0%{?suse_version} >= 1210
%if 0%{?suse_version} >= 1140
%ifarch %ix86 x86_64
BuildRequires: libspice-server-devel
BuildRequires: spice-protocol-devel
@ -143,7 +143,7 @@ emulations. This can be used together with the OBS build script to
run cross-architecture builds.
%prep
%setup -q #-n %name-1.4.0-rc1
%setup -q -n %name-1.5.0-rc1
PATCH_EXEC
%build
@ -152,7 +152,6 @@ mkdir -p dynamic
# build qemu-system
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
--libexecdir=%_libexecdir \
--audio-card-list="ac97 es1370 sb16 cs4231a adlib gus" \
--audio-drv-list="alsa sdl" --enable-mixemu --enable-vde \
--enable-curl \
--enable-virtfs \
@ -234,7 +233,7 @@ rm -rf ${RPM_BUILD_ROOT}
%files
%defattr(-, root, root)
%doc COPYING COPYING.LIB Changelog README TODO VERSION qemu-doc.html qemu-tech.html
%doc COPYING COPYING.LIB Changelog README VERSION qemu-doc.html qemu-tech.html
%_bindir/qemu-system-*
%doc %_mandir/man1/qemu.1.gz
%_datadir/%name
@ -275,6 +274,8 @@ rm -rf ${RPM_BUILD_ROOT}
%_bindir/qemu-mipsel
%_bindir/qemu-mipsn32
%_bindir/qemu-mipsn32el
%_bindir/qemu-mips64
%_bindir/qemu-mips64el
%_bindir/qemu-or32
%_bindir/qemu-ppc64abi32
%_bindir/qemu-ppc64

View File

@ -12,8 +12,8 @@
GIT_TREE=git://github.com/openSUSE/qemu.git
GIT_LOCAL_TREE=/suse/agraf/git/qemu
GIT_BRANCH=opensuse-1.4
GIT_UPSTREAM_TAG=v1.4.0
GIT_BRANCH=opensuse-1.5
GIT_UPSTREAM_TAG=v1.5.0-rc1
QEMU_TMP=/dev/shm/qemu-tmp
# clean up