diff --git a/0001-Handle-CPU-interrupts-by-inline-che.patch b/0001-Handle-CPU-interrupts-by-inline-che.patch deleted file mode 100644 index 6b9facb5..00000000 --- a/0001-Handle-CPU-interrupts-by-inline-che.patch +++ /dev/null @@ -1,231 +0,0 @@ -From e076316356911dae5ae97af90710e28fabb416cd Mon Sep 17 00:00:00 2001 -From: Peter Maydell -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; diff --git a/0002-XXX-dont-dump-core-on-sigabort.patc.patch b/0001-XXX-dont-dump-core-on-sigabort.patc.patch similarity index 85% rename from 0002-XXX-dont-dump-core-on-sigabort.patc.patch rename to 0001-XXX-dont-dump-core-on-sigabort.patc.patch index d115ef0e..ce1c3daa 100644 --- a/0002-XXX-dont-dump-core-on-sigabort.patc.patch +++ b/0001-XXX-dont-dump-core-on-sigabort.patc.patch @@ -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 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(+) + linux-user/signal.c | 6 ++++++ + 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) diff --git a/0003-XXX-work-around-SA_RESTART-race-wit.patch b/0002-XXX-work-around-SA_RESTART-race-wit.patch similarity index 91% rename from 0003-XXX-work-around-SA_RESTART-race-wit.patch rename to 0002-XXX-work-around-SA_RESTART-race-wit.patch index fb253991..c1c31a27 100644 --- a/0003-XXX-work-around-SA_RESTART-race-wit.patch +++ b/0002-XXX-work-around-SA_RESTART-race-wit.patch @@ -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 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/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/main.c | 25 +++++++++------ + linux-user/qemu.h | 3 ++ + 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_. */ -@@ -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); diff --git a/0004-qemu-0.9.0.cvs-binfmt.patch.patch b/0003-qemu-0.9.0.cvs-binfmt.patch.patch similarity index 97% rename from 0004-qemu-0.9.0.cvs-binfmt.patch.patch rename to 0003-qemu-0.9.0.cvs-binfmt.patch.patch index 03e8cf10..fb57488d 100644 --- a/0004-qemu-0.9.0.cvs-binfmt.patch.patch +++ b/0003-qemu-0.9.0.cvs-binfmt.patch.patch @@ -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 Date: Tue, 14 Apr 2009 16:18:44 +0200 Subject: [PATCH] qemu-0.9.0.cvs-binfmt @@ -10,8 +10,8 @@ Fixes binfmt_misc setup script: Signed-off-by: Ulrich Hecht --- - scripts/qemu-binfmt-conf.sh | 37 ++++++++++++++++++++----------------- - 1 Datei geändert, 20 Zeilen hinzugefügt(+), 17 Zeilen entfernt(-) + scripts/qemu-binfmt-conf.sh | 37 ++++++++++++++++++++----------------- + 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 diff --git a/0005-qemu-cvs-alsa_bitfield.patch.patch b/0004-qemu-cvs-alsa_bitfield.patch.patch similarity index 92% rename from 0005-qemu-cvs-alsa_bitfield.patch.patch rename to 0004-qemu-cvs-alsa_bitfield.patch.patch index c6e63c0c..98280893 100644 --- a/0005-qemu-cvs-alsa_bitfield.patch.patch +++ b/0004-qemu-cvs-alsa_bitfield.patch.patch @@ -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 Date: Tue, 14 Apr 2009 16:20:50 +0200 Subject: [PATCH] qemu-cvs-alsa_bitfield @@ -8,9 +8,9 @@ Implements TYPE_INTBITFIELD partially. (required for ALSA support) Signed-off-by: Alexander Graf Signed-off-by: Ulrich Hecht --- - include/exec/user/thunk.h | 3 +++ - thunk.c | 21 +++++++++++++++++++++ - 2 Dateien geändert, 24 Zeilen hinzugefügt(+) + include/exec/user/thunk.h | 3 +++ + thunk.c | 21 +++++++++++++++++++++ + 2 files changed, 24 insertions(+) diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h index 87025c3..6c35e64 100644 diff --git a/0006-qemu-cvs-alsa_ioctl.patch.patch b/0005-qemu-cvs-alsa_ioctl.patch.patch similarity index 99% rename from 0006-qemu-cvs-alsa_ioctl.patch.patch rename to 0005-qemu-cvs-alsa_ioctl.patch.patch index 848a2bd2..2e05ca25 100644 --- a/0006-qemu-cvs-alsa_ioctl.patch.patch +++ b/0005-qemu-cvs-alsa_ioctl.patch.patch @@ -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 Date: Tue, 14 Apr 2009 16:23:27 +0200 Subject: [PATCH] qemu-cvs-alsa_ioctl @@ -14,7 +14,7 @@ Signed-off-by: Ulrich Hecht 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 diff --git a/0007-qemu-cvs-alsa_mmap.patch.patch b/0006-qemu-cvs-alsa_mmap.patch.patch similarity index 90% rename from 0007-qemu-cvs-alsa_mmap.patch.patch rename to 0006-qemu-cvs-alsa_mmap.patch.patch index 7df074c2..a4ad4dfb 100644 --- a/0007-qemu-cvs-alsa_mmap.patch.patch +++ b/0006-qemu-cvs-alsa_mmap.patch.patch @@ -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 Date: Tue, 14 Apr 2009 16:24:15 +0200 Subject: [PATCH] qemu-cvs-alsa_mmap @@ -8,8 +8,8 @@ Hack to prevent ALSA from using mmap() interface to simplify emulation. Signed-off-by: Alexander Graf Signed-off-by: Ulrich Hecht --- - linux-user/mmap.c | 14 ++++++++++++++ - 1 Datei geändert, 14 Zeilen hinzugefügt(+) + linux-user/mmap.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) diff --git a/linux-user/mmap.c b/linux-user/mmap.c index b412e3f..46523de 100644 diff --git a/0008-qemu-cvs-gettimeofday.patch.patch b/0007-qemu-cvs-gettimeofday.patch.patch similarity index 70% rename from 0008-qemu-cvs-gettimeofday.patch.patch rename to 0007-qemu-cvs-gettimeofday.patch.patch index 305b49a9..3f63d04c 100644 --- a/0008-qemu-cvs-gettimeofday.patch.patch +++ b/0007-qemu-cvs-gettimeofday.patch.patch @@ -1,18 +1,18 @@ -From a860db4bac653140b44b008d47d77293ec3af6ab Mon Sep 17 00:00:00 2001 +From f0c2b05e40606a04891dc720436462631a8d7771 Mon Sep 17 00:00:00 2001 From: Ulrich Hecht Date: Tue, 14 Apr 2009 16:25:41 +0200 Subject: [PATCH] qemu-cvs-gettimeofday No clue what this is for. --- - linux-user/syscall.c | 2 ++ - 1 Datei geändert, 2 Zeilen hinzugefügt(+) + linux-user/syscall.c | 2 ++ + 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; diff --git a/0009-qemu-cvs-ioctl_debug.patch.patch b/0008-qemu-cvs-ioctl_debug.patch.patch similarity index 82% rename from 0009-qemu-cvs-ioctl_debug.patch.patch rename to 0008-qemu-cvs-ioctl_debug.patch.patch index d262ad4a..fa0286b9 100644 --- a/0009-qemu-cvs-ioctl_debug.patch.patch +++ b/0008-qemu-cvs-ioctl_debug.patch.patch @@ -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 Date: Tue, 14 Apr 2009 16:26:33 +0200 Subject: [PATCH] qemu-cvs-ioctl_debug @@ -8,14 +8,14 @@ Extends unsupported ioctl debug output. Signed-off-by: Alexander Graf Signed-off-by: Ulrich Hecht --- - linux-user/syscall.c | 7 ++++++- - 1 Datei geändert, 6 Zeilen hinzugefügt(+), 1 Zeile entfernt(-) + linux-user/syscall.c | 7 ++++++- + 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) { diff --git a/0010-qemu-cvs-ioctl_nodirection.patch.patch b/0009-qemu-cvs-ioctl_nodirection.patch.patch similarity index 81% rename from 0010-qemu-cvs-ioctl_nodirection.patch.patch rename to 0009-qemu-cvs-ioctl_nodirection.patch.patch index 07688e52..b4270437 100644 --- a/0010-qemu-cvs-ioctl_nodirection.patch.patch +++ b/0009-qemu-cvs-ioctl_nodirection.patch.patch @@ -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 Date: Tue, 14 Apr 2009 16:27:36 +0200 Subject: [PATCH] qemu-cvs-ioctl_nodirection @@ -11,14 +11,14 @@ IOC_RW. Signed-off-by: Alexander Graf Signed-off-by: Ulrich Hecht --- - linux-user/syscall.c | 6 ++++++ - 1 Datei geändert, 6 Zeilen hinzugefügt(+) + linux-user/syscall.c | 6 ++++++ + 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; diff --git a/0011-block-vmdk-Support-creation-of-SCSI.patch b/0010-block-vmdk-Support-creation-of-SCSI.patch similarity index 68% rename from 0011-block-vmdk-Support-creation-of-SCSI.patch rename to 0010-block-vmdk-Support-creation-of-SCSI.patch index 91511f03..aace7354 100644 --- a/0011-block-vmdk-Support-creation-of-SCSI.patch +++ b/0010-block-vmdk-Support-creation-of-SCSI.patch @@ -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 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 [AF: Rebased onto upstream VMDK SCSI support] Signed-off-by: Andreas Färber --- - 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(-) + block.c | 6 +++++- + block/vmdk.c | 9 ++++++++- + include/block/block_int.h | 2 ++ + qemu-img.c | 8 +++++++- + 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, - - printf("Formatting '%s', fmt=%s ", filename, fmt); - print_option_parameters(param); -+ scsi = get_option_parameter(param, BLOCK_OPT_SCSI); -+ if (scsi && scsi->value.n) -+ printf(", SCSI"); - puts(""); - +@@ -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) { ++ 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) } } diff --git a/0013-linux-user-add-binfmt-wrapper-for-a.patch b/0011-linux-user-add-binfmt-wrapper-for-a.patch similarity index 95% rename from 0013-linux-user-add-binfmt-wrapper-for-a.patch rename to 0011-linux-user-add-binfmt-wrapper-for-a.patch index 79f72059..66836578 100644 --- a/0013-linux-user-add-binfmt-wrapper-for-a.patch +++ b/0011-linux-user-add-binfmt-wrapper-for-a.patch @@ -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 Date: Fri, 30 Sep 2011 19:40:36 +0200 Subject: [PATCH] linux-user: add binfmt wrapper for argv[0] handling @@ -27,15 +27,15 @@ Signed-off-by: Alexander Graf [AF: Rebased onto new Makefile infrastructure] Signed-off-by: Andreas Färber --- - Makefile.target | 12 ++++++++++++ - 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(-) + Makefile.target | 12 ++++++++++++ + linux-user/Makefile.objs | 2 ++ + linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++ + scripts/qemu-binfmt-conf.sh | 34 +++++++++++++++++----------------- + 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 diff --git a/0012-configure-Enable-mipsn32-linux-user.patch b/0012-configure-Enable-mipsn32-linux-user.patch deleted file mode 100644 index 15ce3688..00000000 --- a/0012-configure-Enable-mipsn32-linux-user.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 333ed82a92d02ce4a2a8cdcacd61ccf5e496ff64 Mon Sep 17 00:00:00 2001 -From: Ulrich Hecht -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 -[AF: Merged default-configs upstream] -[AF: Merged with new or32-linux-user for v1.2] -Signed-off-by: Andreas Färber ---- - 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 \ diff --git a/0014-linux-user-Ignore-timer_create-sysc.patch b/0012-linux-user-Ignore-timer_create-sysc.patch similarity index 75% rename from 0014-linux-user-Ignore-timer_create-sysc.patch rename to 0012-linux-user-Ignore-timer_create-sysc.patch index e6a25049..604539a6 100644 --- a/0014-linux-user-Ignore-timer_create-sysc.patch +++ b/0012-linux-user-Ignore-timer_create-sysc.patch @@ -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 Date: Sun, 11 Dec 2011 01:19:24 +0100 Subject: [PATCH] linux-user: Ignore timer_create syscall @@ -8,14 +8,14 @@ about it breaks some %check tests in OBS, so better ignore it silently. Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 5 +++++ - 1 Datei geändert, 5 Zeilen hinzugefügt(+) + linux-user/syscall.c | 5 +++++ + 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 diff --git a/0015-linux-user-be-silent-about-capget-f.patch b/0013-linux-user-be-silent-about-capget-f.patch similarity index 74% rename from 0015-linux-user-be-silent-about-capget-f.patch rename to 0013-linux-user-be-silent-about-capget-f.patch index fc3601f1..40fcda9e 100644 --- a/0015-linux-user-be-silent-about-capget-f.patch +++ b/0013-linux-user-be-silent-about-capget-f.patch @@ -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 Date: Sun, 11 Dec 2011 01:21:51 +0100 Subject: [PATCH] linux-user: be silent about capget failures @@ -9,14 +9,14 @@ implementation and go on with life :) Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 2 +- - 1 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-) + linux-user/syscall.c | 2 +- + 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: diff --git a/0016-PPC-KVM-Disable-mmu-notifier-check..patch b/0014-PPC-KVM-Disable-mmu-notifier-check..patch similarity index 67% rename from 0016-PPC-KVM-Disable-mmu-notifier-check..patch rename to 0014-PPC-KVM-Disable-mmu-notifier-check..patch index b11d3680..8b556dc5 100644 --- a/0016-PPC-KVM-Disable-mmu-notifier-check..patch +++ b/0014-PPC-KVM-Disable-mmu-notifier-check..patch @@ -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 Date: Fri, 6 Jan 2012 01:05:55 +0100 Subject: [PATCH] PPC: KVM: Disable mmu notifier check @@ -9,14 +9,14 @@ check for MMU notifiers that on 970 can not be implemented properly. 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(+) + exec.c | 2 ++ + 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); diff --git a/0017-linux-user-fix-segfault-deadlock.pa.patch b/0015-linux-user-fix-segfault-deadlock.pa.patch similarity index 83% rename from 0017-linux-user-fix-segfault-deadlock.pa.patch rename to 0015-linux-user-fix-segfault-deadlock.pa.patch index 804269b8..af3e2c9a 100644 --- a/0017-linux-user-fix-segfault-deadlock.pa.patch +++ b/0015-linux-user-fix-segfault-deadlock.pa.patch @@ -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 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 Signed-off-by: Alexander Graf +Signed-off-by: Andreas Färber --- - include/exec/spinlock.h | 10 ++++++++++ - user-exec.c | 4 ++++ - 2 Dateien geändert, 14 Zeilen hinzugefügt(+) + include/exec/spinlock.h | 10 ++++++++++ + user-exec.c | 4 ++++ + 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) diff --git a/0018-linux-user-binfmt-support-host-bina.patch b/0016-linux-user-binfmt-support-host-bina.patch similarity index 90% rename from 0018-linux-user-binfmt-support-host-bina.patch rename to 0016-linux-user-binfmt-support-host-bina.patch index 62957fcc..965b9848 100644 --- a/0018-linux-user-binfmt-support-host-bina.patch +++ b/0016-linux-user-binfmt-support-host-bina.patch @@ -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 Date: Thu, 2 Feb 2012 18:02:33 +0100 Subject: [PATCH] linux-user: binfmt: support host binaries @@ -8,8 +8,8 @@ trying to run, let's just use that instead as it will be a lot faster. Signed-off-by: Alexander Graf --- - linux-user/binfmt.c | 25 +++++++++++++++++++++++++ - 1 Datei geändert, 25 Zeilen hinzugefügt(+) + linux-user/binfmt.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c index cd1f513..87dc4c6 100644 diff --git a/0019-linux-user-arm-no-tb_flush-on-reset.patch b/0017-linux-user-arm-no-tb_flush-on-reset.patch similarity index 84% rename from 0019-linux-user-arm-no-tb_flush-on-reset.patch rename to 0017-linux-user-arm-no-tb_flush-on-reset.patch index a7cd6412..89227702 100644 --- a/0019-linux-user-arm-no-tb_flush-on-reset.patch +++ b/0017-linux-user-arm-no-tb_flush-on-reset.patch @@ -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 Date: Tue, 29 May 2012 15:30:01 +0200 Subject: [PATCH] linux-user: arm: no tb_flush on reset @@ -10,11 +10,11 @@ tb_flush on reset. 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(+) + target-arm/cpu.c | 4 ++++ + 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) diff --git a/0020-linux-user-Ignore-broken-loop-ioctl.patch b/0018-linux-user-Ignore-broken-loop-ioctl.patch similarity index 87% rename from 0020-linux-user-Ignore-broken-loop-ioctl.patch rename to 0018-linux-user-Ignore-broken-loop-ioctl.patch index c7f7dfd4..2de992df 100644 --- a/0020-linux-user-Ignore-broken-loop-ioctl.patch +++ b/0018-linux-user-Ignore-broken-loop-ioctl.patch @@ -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 Date: Tue, 12 Jun 2012 04:41:10 +0200 Subject: [PATCH] linux-user: Ignore broken loop ioctl @@ -11,11 +11,11 @@ So let's silently ignore that bogus ioctl. Signed-off-by: Alexander Graf --- - linux-user/ioctls.h | 1 + - 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(+) + linux-user/ioctls.h | 1 + + linux-user/linux_loop.h | 1 + + linux-user/syscall.c | 7 +++++++ + linux-user/syscall_defs.h | 1 + + 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; } diff --git a/0021-linux-user-fix-segmentation-fault-p.patch b/0019-linux-user-fix-segmentation-fault-p.patch similarity index 88% rename from 0021-linux-user-fix-segmentation-fault-p.patch rename to 0019-linux-user-fix-segmentation-fault-p.patch index 487bdad7..91ff48e8 100644 --- a/0021-linux-user-fix-segmentation-fault-p.patch +++ b/0019-linux-user-fix-segmentation-fault-p.patch @@ -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 Date: Mon, 25 Jun 2012 19:02:32 +0200 Subject: [PATCH] linux-user: fix segmentation fault passing with g2h(x) != x @@ -19,11 +19,11 @@ Signed-off-by: Alexander Graf [AF: Rebased onto AREG0 fix for v1.2, squashed fixup by agraf] Signed-off-by: Andreas Färber --- - user-exec.c | 6 ++++++ - 1 Datei geändert, 6 Zeilen hinzugefügt(+) + user-exec.c | 6 ++++++ + 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, diff --git a/0022-linux-user-lock-tcg.patch.patch b/0020-linux-user-lock-tcg.patch.patch similarity index 86% rename from 0022-linux-user-lock-tcg.patch.patch rename to 0020-linux-user-lock-tcg.patch.patch index 97768cd9..9347dacc 100644 --- a/0022-linux-user-lock-tcg.patch.patch +++ b/0020-linux-user-lock-tcg.patch.patch @@ -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 Date: Thu, 5 Jul 2012 17:31:39 +0200 Subject: [PATCH] linux-user: lock tcg @@ -13,10 +13,10 @@ Signed-off-by: Alexander Graf [AF: Rebased onto exec.c/translate-all.c split for 1.4] Signed-off-by: Andreas Färber --- - linux-user/mmap.c | 3 +++ - tcg/tcg.c | 36 ++++++++++++++++++++++++++++++++++-- - tcg/tcg.h | 6 ++++++ - 3 Dateien geändert, 43 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-) + linux-user/mmap.c | 3 +++ + tcg/tcg.c | 36 ++++++++++++++++++++++++++++++++++-- + tcg/tcg.h | 6 ++++++ + 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); diff --git a/0023-linux-user-Run-multi-threaded-code-.patch b/0021-linux-user-Run-multi-threaded-code-.patch similarity index 84% rename from 0023-linux-user-Run-multi-threaded-code-.patch rename to 0021-linux-user-Run-multi-threaded-code-.patch index 436d1580..5b02b17d 100644 --- a/0023-linux-user-Run-multi-threaded-code-.patch +++ b/0021-linux-user-Run-multi-threaded-code-.patch @@ -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 Date: Tue, 10 Jul 2012 20:40:55 +0200 Subject: [PATCH] linux-user: Run multi-threaded code on a single core @@ -15,14 +15,14 @@ This gets Java 1.7 working for me again on my test box. Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 9 +++++++++ - 1 Datei geändert, 9 Zeilen hinzugefügt(+) + linux-user/syscall.c | 9 +++++++++ + 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); diff --git a/0024-linux-user-lock-tb-flushing-too.pat.patch b/0022-linux-user-lock-tb-flushing-too.pat.patch similarity index 62% rename from 0024-linux-user-lock-tb-flushing-too.pat.patch rename to 0022-linux-user-lock-tb-flushing-too.pat.patch index 342b2603..113ffec9 100644 --- a/0024-linux-user-lock-tb-flushing-too.pat.patch +++ b/0022-linux-user-lock-tb-flushing-too.pat.patch @@ -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 Date: Wed, 11 Jul 2012 16:47:42 +0200 Subject: [PATCH] linux-user: lock tb flushing too @@ -10,24 +10,25 @@ Signed-off-by: Alexander Graf [AF: Rebased onto exec.c/translate-all.c split for 1.4] Signed-off-by: Andreas Färber --- - translate-all.c | 20 ++++++++++++++++++-- - 1 Datei geändert, 18 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-) + translate-all.c | 20 ++++++++++++++++++-- + 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) diff --git a/0025-linux-user-Fake-proc-cpuinfo.patch.patch b/0023-linux-user-Fake-proc-cpuinfo.patch.patch similarity index 83% rename from 0025-linux-user-Fake-proc-cpuinfo.patch.patch rename to 0023-linux-user-Fake-proc-cpuinfo.patch.patch index 0dc55998..fcb9d7a9 100644 --- a/0025-linux-user-Fake-proc-cpuinfo.patch.patch +++ b/0023-linux-user-Fake-proc-cpuinfo.patch.patch @@ -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 Date: Mon, 23 Jul 2012 10:24:14 +0200 Subject: [PATCH] linux-user: Fake /proc/cpuinfo @@ -13,14 +13,14 @@ has happened. Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 20 ++++++++++++++++++++ - 1 Datei geändert, 20 Zeilen hinzugefügt(+) + linux-user/syscall.c | 20 ++++++++++++++++++++ + 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 }, diff --git a/0026-linux-user-implement-FS_IOC_GETFLAG.patch b/0024-linux-user-implement-FS_IOC_GETFLAG.patch similarity index 87% rename from 0026-linux-user-implement-FS_IOC_GETFLAG.patch rename to 0024-linux-user-implement-FS_IOC_GETFLAG.patch index d8b3164d..b8510613 100644 --- a/0026-linux-user-implement-FS_IOC_GETFLAG.patch +++ b/0024-linux-user-implement-FS_IOC_GETFLAG.patch @@ -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 Date: Mon, 20 Aug 2012 00:02:52 +0200 Subject: [PATCH] linux-user: implement FS_IOC_GETFLAGS ioctl @@ -11,9 +11,9 @@ v1 -> v2: - use TYPE_LONG instead of TYPE_INT --- - linux-user/ioctls.h | 1 + - linux-user/syscall_defs.h | 2 ++ - 2 Dateien geändert, 3 Zeilen hinzugefügt(+) + linux-user/ioctls.h | 1 + + linux-user/syscall_defs.h | 2 ++ + 2 files changed, 3 insertions(+) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index bb76c56..85b5bfd 100644 diff --git a/0027-linux-user-implement-FS_IOC_SETFLAG.patch b/0025-linux-user-implement-FS_IOC_SETFLAG.patch similarity index 86% rename from 0027-linux-user-implement-FS_IOC_SETFLAG.patch rename to 0025-linux-user-implement-FS_IOC_SETFLAG.patch index 33efe0c0..403446f1 100644 --- a/0027-linux-user-implement-FS_IOC_SETFLAG.patch +++ b/0025-linux-user-implement-FS_IOC_SETFLAG.patch @@ -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 Date: Mon, 20 Aug 2012 00:07:13 +0200 Subject: [PATCH] linux-user: implement FS_IOC_SETFLAGS ioctl @@ -11,9 +11,9 @@ v1 -> v2 - use TYPE_LONG instead of TYPE_INT --- - linux-user/ioctls.h | 1 + - linux-user/syscall_defs.h | 1 + - 2 Dateien geändert, 2 Zeilen hinzugefügt(+) + linux-user/ioctls.h | 1 + + linux-user/syscall_defs.h | 1 + + 2 files changed, 2 insertions(+) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 85b5bfd..229cd6f 100644 diff --git a/0028-linux-user-XXX-disable-fiemap.patch.patch b/0026-linux-user-XXX-disable-fiemap.patch.patch similarity index 70% rename from 0028-linux-user-XXX-disable-fiemap.patch.patch rename to 0026-linux-user-XXX-disable-fiemap.patch.patch index 9624a6b7..f513541d 100644 --- a/0028-linux-user-XXX-disable-fiemap.patch.patch +++ b/0026-linux-user-XXX-disable-fiemap.patch.patch @@ -1,18 +1,18 @@ -From a20945c6ee59e260e585e99fb59314d34664417c Mon Sep 17 00:00:00 2001 +From 35c7135a88b55ecb267455e79af13f5a43bd4289 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 21 Aug 2012 14:20:40 +0200 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(+) + linux-user/syscall.c | 5 +++++ + 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; diff --git a/0029-slirp-nooutgoing.patch.patch b/0027-slirp-nooutgoing.patch.patch similarity index 68% rename from 0029-slirp-nooutgoing.patch.patch rename to 0027-slirp-nooutgoing.patch.patch index 8d8fdcd1..8a112f19 100644 --- a/0029-slirp-nooutgoing.patch.patch +++ b/0027-slirp-nooutgoing.patch.patch @@ -1,21 +1,21 @@ -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?= Date: Wed, 29 Aug 2012 18:42:56 +0200 Subject: [PATCH] slirp: -nooutgoing TBD (from SUSE Studio team) --- - qemu-options.hx | 10 ++++++++++ - slirp/socket.c | 8 ++++++++ - slirp/tcp_subr.c | 16 ++++++++++++++++ - vl.c | 9 +++++++++ - 4 Dateien geändert, 43 Zeilen hinzugefügt(+) + qemu-options.hx | 10 ++++++++++ + slirp/socket.c | 8 ++++++++ + slirp/tcp_subr.c | 13 +++++++++++++ + vl.c | 9 +++++++++ + 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) - 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); - 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) == +@@ -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; ++ } + qemu_set_nonblock(s); + opt = 1; + 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; diff --git a/0030-vnc-password-file-and-incoming-conn.patch b/0028-vnc-password-file-and-incoming-conn.patch similarity index 84% rename from 0030-vnc-password-file-and-incoming-conn.patch rename to 0028-vnc-password-file-and-incoming-conn.patch index 588c340b..30f0b560 100644 --- a/0030-vnc-password-file-and-incoming-conn.patch +++ b/0028-vnc-password-file-and-incoming-conn.patch @@ -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?= 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 */ diff --git a/0031-linux-user-add-more-blk-ioctls.patc.patch b/0029-linux-user-add-more-blk-ioctls.patc.patch similarity index 90% rename from 0031-linux-user-add-more-blk-ioctls.patc.patch rename to 0029-linux-user-add-more-blk-ioctls.patc.patch index 0111a030..29271bbc 100644 --- a/0031-linux-user-add-more-blk-ioctls.patc.patch +++ b/0029-linux-user-add-more-blk-ioctls.patc.patch @@ -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 Date: Wed, 10 Oct 2012 10:21:20 +0200 Subject: [PATCH] linux-user: add more blk ioctls @@ -7,10 +7,10 @@ Implement a few more ioctls that operate on block devices. Signed-off-by: Alexander Graf --- - 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(+) + linux-user/ioctls.h | 18 ++++++++++++++++++ + linux-user/syscall_defs.h | 6 ++++++ + linux-user/syscall_types.h | 3 +++ + 3 files changed, 27 insertions(+) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 229cd6f..3323176 100644 diff --git a/0032-linux-user-use-target_ulong.patch.patch b/0030-linux-user-use-target_ulong.patch.patch similarity index 88% rename from 0032-linux-user-use-target_ulong.patch.patch rename to 0030-linux-user-use-target_ulong.patch.patch index afc72864..c3cd4f3d 100644 --- a/0032-linux-user-use-target_ulong.patch.patch +++ b/0030-linux-user-use-target_ulong.patch.patch @@ -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 Date: Tue, 9 Oct 2012 09:06:49 +0200 Subject: [PATCH] linux-user: use target_ulong @@ -12,9 +12,9 @@ Pass syscall arguments as ulong always. Signed-off-by: Alexander Graf --- - linux-user/qemu.h | 8 ++++---- - linux-user/syscall.c | 8 ++++---- - 2 Dateien geändert, 8 Zeilen hinzugefügt(+), 8 Zeilen entfernt(-) + linux-user/qemu.h | 8 ++++---- + linux-user/syscall.c | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 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_. */ diff --git a/0033-Add-support-for-DictZip-enabled-gzi.patch b/0031-Add-support-for-DictZip-enabled-gzi.patch similarity index 92% rename from 0033-Add-support-for-DictZip-enabled-gzi.patch rename to 0031-Add-support-for-DictZip-enabled-gzi.patch index 83441db7..26f8ec8a 100644 --- a/0033-Add-support-for-DictZip-enabled-gzi.patch +++ b/0031-Add-support-for-DictZip-enabled-gzi.patch @@ -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 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 Signed-off-by: Bruce Rogers Signed-off-by: Andreas Färber +[TH: Use bdrv_open options instead of filename] +Signed-off-by: Tim Hardeck +Signed-off-by: Andreas Färber --- - block/Makefile.objs | 1 + - block/dictzip.c | 566 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 Dateien geändert, 567 Zeilen hinzugefügt(+) + block/Makefile.objs | 1 + + 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; +} + diff --git a/0034-Add-tar-container-format.patch.patch b/0032-Add-tar-container-format.patch.patch similarity index 88% rename from 0034-Add-tar-container-format.patch.patch rename to 0032-Add-tar-container-format.patch.patch index 2dcfb5f5..2d1f5c10 100644 --- a/0034-Add-tar-container-format.patch.patch +++ b/0032-Add-tar-container-format.patch.patch @@ -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 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 Signed-off-by: Bruce Rogers Signed-off-by: Andreas Färber +[TH: Use bdrv_open options instead of filename] +Signed-off-by: Tim Hardeck +Signed-off-by: Andreas Färber --- - block/Makefile.objs | 1 + - block/tar.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 Dateien geändert, 357 Zeilen hinzugefügt(+) + block/Makefile.objs | 1 + + 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; +} + diff --git a/0035-Legacy-Patch-kvm-qemu-preXX-dictzip.patch b/0033-Legacy-Patch-kvm-qemu-preXX-dictzip.patch similarity index 83% rename from 0035-Legacy-Patch-kvm-qemu-preXX-dictzip.patch rename to 0033-Legacy-Patch-kvm-qemu-preXX-dictzip.patch index 97db2574..9cecd7bc 100644 --- a/0035-Legacy-Patch-kvm-qemu-preXX-dictzip.patch +++ b/0033-Legacy-Patch-kvm-qemu-preXX-dictzip.patch @@ -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 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(-) + block/tar.c | 13 +++++++++++-- + 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'; diff --git a/0036-Legacy-Patch-kvm-qemu-preXX-report-.patch b/0034-Legacy-Patch-kvm-qemu-preXX-report-.patch similarity index 84% rename from 0036-Legacy-Patch-kvm-qemu-preXX-report-.patch rename to 0034-Legacy-Patch-kvm-qemu-preXX-report-.patch index 79393c72..cfd5c157 100644 --- a/0036-Legacy-Patch-kvm-qemu-preXX-report-.patch +++ b/0034-Legacy-Patch-kvm-qemu-preXX-report-.patch @@ -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 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(+) + net/net.c | 22 ++++++++++++++++++++++ + 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; } diff --git a/0037-console-add-question-mark-escape-op.patch b/0035-console-add-question-mark-escape-op.patch similarity index 78% rename from 0037-console-add-question-mark-escape-op.patch rename to 0035-console-add-question-mark-escape-op.patch index e4d528ed..bd2fca2d 100644 --- a/0037-console-add-question-mark-escape-op.patch +++ b/0035-console-add-question-mark-escape-op.patch @@ -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 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 --- - ui/console.c | 2 +- - 1 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-) + ui/console.c | 2 +- + 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++; diff --git a/0038-Make-char-muxer-more-robust-wrt-sma.patch b/0036-Make-char-muxer-more-robust-wrt-sma.patch similarity index 86% rename from 0038-Make-char-muxer-more-robust-wrt-sma.patch rename to 0036-Make-char-muxer-more-robust-wrt-sma.patch index 24ce6fd4..013abf6e 100644 --- a/0038-Make-char-muxer-more-robust-wrt-sma.patch +++ b/0036-Make-char-muxer-more-robust-wrt-sma.patch @@ -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 Date: Thu, 1 Apr 2010 17:36:23 +0200 Subject: [PATCH] Make char muxer more robust wrt small FIFOs @@ -18,14 +18,14 @@ 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(+) + qemu-char.c | 16 ++++++++++++++++ + 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; diff --git a/0039-linux-user-lseek-explicitly-cast-en.patch b/0037-linux-user-lseek-explicitly-cast-en.patch similarity index 81% rename from 0039-linux-user-lseek-explicitly-cast-en.patch rename to 0037-linux-user-lseek-explicitly-cast-en.patch index 1bd0f28c..82ed504d 100644 --- a/0039-linux-user-lseek-explicitly-cast-en.patch +++ b/0037-linux-user-lseek-explicitly-cast-en.patch @@ -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 Date: Thu, 13 Dec 2012 14:29:22 +0100 Subject: [PATCH] linux-user: lseek: explicitly cast end offsets to signed @@ -12,14 +12,14 @@ absolute position which we need to maintain as unsigned. Signed-off-by: Alexander Graf --- - linux-user/syscall.c | 9 +++++++-- - 1 Datei geändert, 7 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-) + linux-user/syscall.c | 9 +++++++-- + 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 diff --git a/qemu-1.4.0.tar.bz2 b/qemu-1.4.0.tar.bz2 deleted file mode 100644 index 5f3d1ad6..00000000 --- a/qemu-1.4.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:066297ed77408fb7588889c271a85cf3c259ad55c939315988e6062d7708eda8 -size 10419510 diff --git a/qemu-1.5.0-rc1.tar.bz2 b/qemu-1.5.0-rc1.tar.bz2 new file mode 100644 index 00000000..7ee630fa --- /dev/null +++ b/qemu-1.5.0-rc1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1da6df92e7fc6c6520d65d150046bbb450bfe80839529588159777ec1b32a359 +size 11932546 diff --git a/qemu.changes b/qemu.changes index 11ad479b..26f92708 100644 --- a/qemu.changes +++ b/qemu.changes @@ -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 diff --git a/qemu.spec b/qemu.spec index 397a3514..cf56592c 100644 --- a/qemu.spec +++ b/qemu.spec @@ -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 diff --git a/qemu.spec.in b/qemu.spec.in index b5546e1f..5dee3391 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -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 diff --git a/update_git.sh b/update_git.sh index f64ce622..51dd973f 100644 --- a/update_git.sh +++ b/update_git.sh @@ -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