From e53bce3ca8ea2ada5e92da6dd8f282872e182d08b8b36821a0a972ae6bbb0e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sat, 21 Mar 2015 11:46:36 +0000 Subject: [PATCH] Accepting request 292199 from home:a_faerber:branches:Virtualization Update to v2.3.0-rc0. SeaBIOS does not yet build on 11.4, and rcutorture test fails on ppc. OBS-URL: https://build.opensuse.org/request/show/292199 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=238 --- 0001-XXX-dont-dump-core-on-sigabort.patch | 4 +- ...-XXX-work-around-SA_RESTART-race-wit.patch | 18 +- 0003-qemu-0.9.0.cvs-binfmt.patch | 2 +- 0004-qemu-cvs-alsa_bitfield.patch | 2 +- 0005-qemu-cvs-alsa_ioctl.patch | 6 +- 0006-qemu-cvs-alsa_mmap.patch | 2 +- 0007-qemu-cvs-gettimeofday.patch | 6 +- 0008-qemu-cvs-ioctl_debug.patch | 6 +- 0009-qemu-cvs-ioctl_nodirection.patch | 8 +- ...-block-vmdk-Support-creation-of-SCSI.patch | 22 +- ...-linux-user-add-binfmt-wrapper-for-a.patch | 8 +- 0012-PPC-KVM-Disable-mmu-notifier-check.patch | 6 +- 0013-linux-user-fix-segfault-deadlock.patch | 4 +- ...-linux-user-binfmt-support-host-bina.patch | 2 +- ...-linux-user-Ignore-broken-loop-ioctl.patch | 10 +- 0016-linux-user-lock-tcg.patch | 31 +- ...-linux-user-Run-multi-threaded-code-.patch | 6 +- 0018-linux-user-lock-tb-flushing-too.patch | 24 +- 0019-linux-user-Fake-proc-cpuinfo.patch | 8 +- ...-linux-user-implement-FS_IOC_GETFLAG.patch | 6 +- ...-linux-user-implement-FS_IOC_SETFLAG.patch | 6 +- 0022-linux-user-XXX-disable-fiemap.patch | 6 +- 0023-slirp-nooutgoing.patch | 12 +- ...-vnc-password-file-and-incoming-conn.patch | 141 ++++---- 0025-linux-user-add-more-blk-ioctls.patch | 6 +- 0026-linux-user-use-target_ulong.patch | 6 +- ...-block-Add-support-for-DictZip-enabl.patch | 6 +- 0028-block-Add-tar-container-format.patch | 6 +- ...-Legacy-Patch-kvm-qemu-preXX-dictzip.patch | 2 +- ...0-net-Warn-about-default-MAC-address.patch | 34 +- ...-console-add-question-mark-escape-op.patch | 4 +- ...-Make-char-muxer-more-robust-wrt-sma.patch | 4 +- ...-linux-user-lseek-explicitly-cast-no.patch | 6 +- ...-virtfs-proxy-helper-Provide-__u64-f.patch | 4 +- ...-configure-Enable-PIE-for-ppc-and-pp.patch | 6 +- 0036-qtest-Increase-socket-timeout.patch | 2 +- ...-AIO-Reduce-number-of-threads-for-32.patch | 2 +- ...-linux-user-Fix-emulation-of-splice-.patch | 6 +- ...-ide-fix-cmd_write_pio-when-nsectors.patch | 38 +++ ...-ide-fix-cmd_read_pio-when-nsectors-.patch | 39 +++ ...-ahci-Fix-sglist-offset-manipulation.patch | 38 +++ ...-ahci-test-improve-rw-buffer-pattern.patch | 94 ++++++ libcacard.changes | 14 + libcacard.spec | 16 +- libcacard.spec.in | 4 +- qemu-2.2.0.tar.bz2 | 3 - qemu-2.2.0.tar.bz2.sig | Bin 287 -> 0 bytes qemu-2.3.0-rc0.tar.bz2 | 3 + qemu-2.3.0-rc0.tar.bz2.sig | Bin 0 -> 287 bytes qemu-linux-user.changes | 14 + qemu-linux-user.spec | 16 +- qemu-linux-user.spec.in | 4 +- qemu.changes | 17 + qemu.spec | 34 +- qemu.spec.in | 18 +- seabios_128kb.patch | 303 ++++++++++++++++++ update_git.sh | 4 +- 57 files changed, 858 insertions(+), 241 deletions(-) rename 0030-Legacy-Patch-kvm-qemu-preXX-report-.patch => 0030-net-Warn-about-default-MAC-address.patch (56%) create mode 100644 0039-ide-fix-cmd_write_pio-when-nsectors.patch create mode 100644 0040-ide-fix-cmd_read_pio-when-nsectors-.patch create mode 100644 0041-ahci-Fix-sglist-offset-manipulation.patch create mode 100644 0042-ahci-test-improve-rw-buffer-pattern.patch delete mode 100644 qemu-2.2.0.tar.bz2 delete mode 100644 qemu-2.2.0.tar.bz2.sig create mode 100644 qemu-2.3.0-rc0.tar.bz2 create mode 100644 qemu-2.3.0-rc0.tar.bz2.sig create mode 100644 seabios_128kb.patch diff --git a/0001-XXX-dont-dump-core-on-sigabort.patch b/0001-XXX-dont-dump-core-on-sigabort.patch index 1c6afd3d..071b07f4 100644 --- a/0001-XXX-dont-dump-core-on-sigabort.patch +++ b/0001-XXX-dont-dump-core-on-sigabort.patch @@ -1,4 +1,4 @@ -From a7cec19ab72bbe4172f010a2c56664ca3495034a Mon Sep 17 00:00:00 2001 +From 60f8ba3fd2e393535ae86191658f40a97b5af3d0 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 @@ -8,7 +8,7 @@ Subject: [PATCH] XXX dont dump core on sigabort 1 file changed, 6 insertions(+) diff --git a/linux-user/signal.c b/linux-user/signal.c -index e11b208..48b6513 100644 +index 5bb399e..a849f26 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -448,6 +448,10 @@ static void QEMU_NORETURN force_sig(int target_sig) diff --git a/0002-XXX-work-around-SA_RESTART-race-wit.patch b/0002-XXX-work-around-SA_RESTART-race-wit.patch index 64fa7935..c3999f7a 100644 --- a/0002-XXX-work-around-SA_RESTART-race-wit.patch +++ b/0002-XXX-work-around-SA_RESTART-race-wit.patch @@ -1,4 +1,4 @@ -From 9fa4ad4feafe57010a39fcc1e02e482989fc07d1 Mon Sep 17 00:00:00 2001 +From a5727f0cf48531cb9b990e6148c2159271b3793c 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) @@ -13,10 +13,10 @@ Subject: [PATCH] XXX work around SA_RESTART race with boehm-gc (ARM only) 4 files changed, 130 insertions(+), 10 deletions(-) diff --git a/linux-user/main.c b/linux-user/main.c -index 5c14c1e..46a4366 100644 +index 6e446de..3cb2140 100644 --- a/linux-user/main.c +++ b/linux-user/main.c -@@ -815,15 +815,22 @@ void cpu_loop(CPUARMState *env) +@@ -817,15 +817,22 @@ void cpu_loop(CPUARMState *env) break; } } else { @@ -70,7 +70,7 @@ index 8012cc2..e29c7f3 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 48b6513..92ba798 100644 +index a849f26..ace2bfb 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -25,6 +25,7 @@ @@ -119,10 +119,10 @@ index 48b6513..92ba798 100644 ignore state to avoid getting unexpected interrupted syscalls */ diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index aaac6a2..4a2bdcb 100644 +index 5720195..4a1d145 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5494,6 +5494,87 @@ static target_timer_t get_timer_id(abi_long arg) +@@ -5511,6 +5511,87 @@ static target_timer_t get_timer_id(abi_long arg) return timerid; } @@ -210,7 +210,7 @@ index aaac6a2..4a2bdcb 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_. */ -@@ -5507,6 +5588,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, +@@ -5524,6 +5605,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, struct stat st; struct statfs stfs; void *p; @@ -223,7 +223,7 @@ index aaac6a2..4a2bdcb 100644 #ifdef DEBUG gemu_log("syscall %d", num); -@@ -8776,7 +8863,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, +@@ -8793,7 +8880,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; @@ -232,7 +232,7 @@ index aaac6a2..4a2bdcb 100644 } switch(arg2) { -@@ -9792,6 +9879,7 @@ fail: +@@ -9810,6 +9897,7 @@ fail: #endif if(do_strace) print_syscall_ret(num, ret); diff --git a/0003-qemu-0.9.0.cvs-binfmt.patch b/0003-qemu-0.9.0.cvs-binfmt.patch index 2df1a40c..0d082634 100644 --- a/0003-qemu-0.9.0.cvs-binfmt.patch +++ b/0003-qemu-0.9.0.cvs-binfmt.patch @@ -1,4 +1,4 @@ -From bb576464efb0640bbdd813fe6c31cbb4a9051cf0 Mon Sep 17 00:00:00 2001 +From b4ae3edb76a31a7765655a381da50f0ba9864d60 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 diff --git a/0004-qemu-cvs-alsa_bitfield.patch b/0004-qemu-cvs-alsa_bitfield.patch index 652760f3..15af6812 100644 --- a/0004-qemu-cvs-alsa_bitfield.patch +++ b/0004-qemu-cvs-alsa_bitfield.patch @@ -1,4 +1,4 @@ -From e5705a68df89fa4d2cd865ee2dbdddac6eaba9e7 Mon Sep 17 00:00:00 2001 +From 4ac0301902403b811b824edf38c2011bffec42ba 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 diff --git a/0005-qemu-cvs-alsa_ioctl.patch b/0005-qemu-cvs-alsa_ioctl.patch index a560262c..884b5d19 100644 --- a/0005-qemu-cvs-alsa_ioctl.patch +++ b/0005-qemu-cvs-alsa_ioctl.patch @@ -1,4 +1,4 @@ -From 4d22a2c7752412d78e22bca9c564fff305ae61d1 Mon Sep 17 00:00:00 2001 +From 09d12c451372af67a5d0ee6eddbdad1d665ff635 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 @@ -2255,10 +2255,10 @@ index 0000000..e09a30d + unsigned char *code; +}; diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h -index ebb3be1..3a55989 100644 +index edd5f3c..e9f81f3 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h -@@ -2562,6 +2562,8 @@ struct target_ucred { +@@ -2521,6 +2521,8 @@ struct target_ucred { uint32_t gid; }; diff --git a/0006-qemu-cvs-alsa_mmap.patch b/0006-qemu-cvs-alsa_mmap.patch index f506dd2c..ca0dd83f 100644 --- a/0006-qemu-cvs-alsa_mmap.patch +++ b/0006-qemu-cvs-alsa_mmap.patch @@ -1,4 +1,4 @@ -From cbcc253de553cdb66102efc20519284da29f11b0 Mon Sep 17 00:00:00 2001 +From 9d1694f11f7171adbd6b42142dbbdfb1d4623865 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 diff --git a/0007-qemu-cvs-gettimeofday.patch b/0007-qemu-cvs-gettimeofday.patch index a5f4d506..17d53720 100644 --- a/0007-qemu-cvs-gettimeofday.patch +++ b/0007-qemu-cvs-gettimeofday.patch @@ -1,4 +1,4 @@ -From e69459c8896b205aadb0d3a773a4ba91d121144b Mon Sep 17 00:00:00 2001 +From 52a52fa257980cd20b6441c31adbf87ec247000d Mon Sep 17 00:00:00 2001 From: Ulrich Hecht Date: Tue, 14 Apr 2009 16:25:41 +0200 Subject: [PATCH] qemu-cvs-gettimeofday @@ -9,10 +9,10 @@ No clue what this is for. 1 file changed, 2 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 4a2bdcb..0ea86cb 100644 +index 4a1d145..5f096a3 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -6666,6 +6666,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, +@@ -6683,6 +6683,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, case TARGET_NR_gettimeofday: { struct timeval tv; diff --git a/0008-qemu-cvs-ioctl_debug.patch b/0008-qemu-cvs-ioctl_debug.patch index ce3b676b..174e93bb 100644 --- a/0008-qemu-cvs-ioctl_debug.patch +++ b/0008-qemu-cvs-ioctl_debug.patch @@ -1,4 +1,4 @@ -From 3db8a988406437231e54a84c59450da30988ffb5 Mon Sep 17 00:00:00 2001 +From 5e82562223c2a75d9231146fb87c9e25ac841bba 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 @@ -12,10 +12,10 @@ Signed-off-by: Ulrich Hecht 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 0ea86cb..ea8e4dd 100644 +index 5f096a3..612896a 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -3844,7 +3844,12 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg) +@@ -3861,7 +3861,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/0009-qemu-cvs-ioctl_nodirection.patch b/0009-qemu-cvs-ioctl_nodirection.patch index 182dde1c..ec11902a 100644 --- a/0009-qemu-cvs-ioctl_nodirection.patch +++ b/0009-qemu-cvs-ioctl_nodirection.patch @@ -1,4 +1,4 @@ -From d3903e53cc2b7163fcc66bd6c642bf6fcc433135 Mon Sep 17 00:00:00 2001 +From b464308fc1a48dec0c071577c8ba553db864474b 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 @@ -15,10 +15,10 @@ Signed-off-by: Ulrich Hecht 1 file changed, 6 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index ea8e4dd..f6187ce 100644 +index 612896a..0b3d170 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -3878,6 +3878,11 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg) +@@ -3895,6 +3895,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 ea8e4dd..f6187ce 100644 case IOC_R: ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp)); if (!is_error(ret)) { -@@ -3896,6 +3901,7 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg) +@@ -3913,6 +3918,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/0010-block-vmdk-Support-creation-of-SCSI.patch b/0010-block-vmdk-Support-creation-of-SCSI.patch index 8566bbd6..cc3aea9d 100644 --- a/0010-block-vmdk-Support-creation-of-SCSI.patch +++ b/0010-block-vmdk-Support-creation-of-SCSI.patch @@ -1,4 +1,4 @@ -From 7cdc20646d413b3c1e31ff1dd85a7ef67147d56d Mon Sep 17 00:00:00 2001 +From 06a328a901796c87e71e4317a08579dd1ba30451 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 @@ -21,13 +21,13 @@ Signed-off-by: Andreas Färber 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/block.c b/block.c -index a612594..74af007 100644 +index 0fe97de..c4636da 100644 --- a/block.c +++ b/block.c -@@ -5630,6 +5630,9 @@ void bdrv_img_create(const char *filename, const char *fmt, +@@ -5780,6 +5780,9 @@ void bdrv_img_create(const char *filename, const char *fmt, if (!quiet) { - printf("Formatting '%s', fmt=%s ", filename, fmt); - qemu_opts_print(opts); + printf("Formatting '%s', fmt=%s", filename, fmt); + qemu_opts_print(opts, " "); + if (qemu_opt_get_bool(opts, BLOCK_OPT_SCSI, false)) { + printf(", SCSI"); + } @@ -35,10 +35,10 @@ index a612594..74af007 100644 } diff --git a/block/vmdk.c b/block/vmdk.c -index 2cbfd3e..caefe19 100644 +index 8410a15..2a34dd0 100644 --- a/block/vmdk.c +++ b/block/vmdk.c -@@ -1818,9 +1818,12 @@ static int vmdk_create(const char *filename, QemuOpts *opts, Error **errp) +@@ -1848,9 +1848,12 @@ static int vmdk_create(const char *filename, QemuOpts *opts, Error **errp) if (qemu_opt_get_bool_del(opts, BLOCK_OPT_ZEROED_GRAIN, false)) { zeroed_grain = true; } @@ -52,7 +52,7 @@ index 2cbfd3e..caefe19 100644 } else if (strcmp(adapter_type, "ide") && strcmp(adapter_type, "buslogic") && strcmp(adapter_type, "lsilogic") && -@@ -2223,6 +2226,11 @@ static QemuOptsList vmdk_create_opts = { +@@ -2265,6 +2268,11 @@ static QemuOptsList vmdk_create_opts = { .help = "Enable efficient zero writes " "using the zeroed-grain GTE feature" }, @@ -65,7 +65,7 @@ index 2cbfd3e..caefe19 100644 } }; diff --git a/include/block/block_int.h b/include/block/block_int.h -index a1c17b9..9d03953 100644 +index dccb092..decca62 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -41,10 +41,12 @@ @@ -82,10 +82,10 @@ index a1c17b9..9d03953 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 a42335c..21c3bae 100644 +index 9dddfbe..cc8e976 100644 --- a/qemu-img.c +++ b/qemu-img.c -@@ -1583,6 +1583,13 @@ static int img_convert(int argc, char **argv) +@@ -1602,6 +1602,13 @@ static int img_convert(int argc, char **argv) } } diff --git a/0011-linux-user-add-binfmt-wrapper-for-a.patch b/0011-linux-user-add-binfmt-wrapper-for-a.patch index 458d40fb..3f78aaf3 100644 --- a/0011-linux-user-add-binfmt-wrapper-for-a.patch +++ b/0011-linux-user-add-binfmt-wrapper-for-a.patch @@ -1,4 +1,4 @@ -From 6a0fa7200207763976f8393156318e77a12e0625 Mon Sep 17 00:00:00 2001 +From 71e26ce8b81f3bc148999ebdde1c3decbbf14fab 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 @@ -37,7 +37,7 @@ Signed-off-by: Andreas Färber create mode 100644 linux-user/binfmt.c diff --git a/Makefile.target b/Makefile.target -index e9ff1ee..8372b29 100644 +index 2262d89..efbd850 100644 --- a/Makefile.target +++ b/Makefile.target @@ -34,6 +34,10 @@ endif @@ -72,9 +72,9 @@ index e9ff1ee..8372b29 100644 all-obj-y := $(obj-y) target-obj-y := -@@ -179,6 +189,9 @@ all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y) +@@ -181,6 +191,9 @@ $(QEMU_PROG_BUILD): config-devices.mak $(QEMU_PROG_BUILD): $(all-obj-y) ../libqemuutil.a ../libqemustub.a - $(call LINK,$^) + $(call LINK, $(filter-out %.mak, $^)) +$(QEMU_PROG)-binfmt: $(obj-binfmt-y) + $(call LINK,$^) diff --git a/0012-PPC-KVM-Disable-mmu-notifier-check.patch b/0012-PPC-KVM-Disable-mmu-notifier-check.patch index 97519fe3..166c1432 100644 --- a/0012-PPC-KVM-Disable-mmu-notifier-check.patch +++ b/0012-PPC-KVM-Disable-mmu-notifier-check.patch @@ -1,4 +1,4 @@ -From 5fb70dbaac4a3508890ff482446276e9fc2f3cc8 Mon Sep 17 00:00:00 2001 +From 58690ae5034776f2b122b879475db9e6245f9789 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 @@ -13,10 +13,10 @@ KVM guests work there, even if possibly racy in some odd circumstances. 1 file changed, 2 insertions(+) diff --git a/exec.c b/exec.c -index 71ac104..6d31d8f 100644 +index e97071a..3c33162 100644 --- a/exec.c +++ b/exec.c -@@ -1108,11 +1108,13 @@ static void *file_ram_alloc(RAMBlock *block, +@@ -1134,11 +1134,13 @@ static void *file_ram_alloc(RAMBlock *block, goto error; } diff --git a/0013-linux-user-fix-segfault-deadlock.patch b/0013-linux-user-fix-segfault-deadlock.patch index 17442625..f74bb452 100644 --- a/0013-linux-user-fix-segfault-deadlock.patch +++ b/0013-linux-user-fix-segfault-deadlock.patch @@ -1,4 +1,4 @@ -From 55e52ca388a49f49a186deb9404de2f97905af3e Mon Sep 17 00:00:00 2001 +From 830a9a72e9460cb85519a38b69a2fe611dd6cd51 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 @@ -52,7 +52,7 @@ index a72edda..e460e12 100644 + #endif diff --git a/user-exec.c b/user-exec.c -index 1ff8673..22f9692 100644 +index 8f57e8a..f63198a 100644 --- a/user-exec.c +++ b/user-exec.c @@ -94,6 +94,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address, diff --git a/0014-linux-user-binfmt-support-host-bina.patch b/0014-linux-user-binfmt-support-host-bina.patch index b3b343c5..83595553 100644 --- a/0014-linux-user-binfmt-support-host-bina.patch +++ b/0014-linux-user-binfmt-support-host-bina.patch @@ -1,4 +1,4 @@ -From 2a1484963a8861e054abdfc178aadd48132730b3 Mon Sep 17 00:00:00 2001 +From a56841890642f1bb470498643c4f7bd1410ca7cc 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 diff --git a/0015-linux-user-Ignore-broken-loop-ioctl.patch b/0015-linux-user-Ignore-broken-loop-ioctl.patch index c9abc38a..53ffa5f7 100644 --- a/0015-linux-user-Ignore-broken-loop-ioctl.patch +++ b/0015-linux-user-Ignore-broken-loop-ioctl.patch @@ -1,4 +1,4 @@ -From 74eb0ee82d3d7550e4cd77a06ee2550edef437ab Mon Sep 17 00:00:00 2001 +From ae94953ccaa0d6eb4640f2c23784df544e07ceb3 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 @@ -46,10 +46,10 @@ index 8974caa..810ae61 100644 #endif diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index f6187ce..84621cc 100644 +index 0b3d170..69e6f1c 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -3821,6 +3821,13 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp, +@@ -3838,6 +3838,13 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp, return get_errno(ioctl(fd, ie->host_cmd, sig)); } @@ -64,10 +64,10 @@ index f6187ce..84621cc 100644 #define IOCTL(cmd, access, ...) \ { TARGET_ ## cmd, cmd, #cmd, access, 0, { __VA_ARGS__ } }, diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h -index 3a55989..d6ccacc 100644 +index e9f81f3..9fabee7 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h -@@ -1061,6 +1061,7 @@ struct target_pollfd { +@@ -1068,6 +1068,7 @@ struct target_pollfd { #define TARGET_LOOP_SET_STATUS64 0x4C04 #define TARGET_LOOP_GET_STATUS64 0x4C05 #define TARGET_LOOP_CHANGE_FD 0x4C06 diff --git a/0016-linux-user-lock-tcg.patch b/0016-linux-user-lock-tcg.patch index 2cefac9f..71b3187f 100644 --- a/0016-linux-user-lock-tcg.patch +++ b/0016-linux-user-lock-tcg.patch @@ -1,4 +1,4 @@ -From b78fc9fe9c68f6c5b1a647a83d203eb7a41f587f Mon Sep 17 00:00:00 2001 +From 1259c5643d469e9c411dacf28b9eadb91c6fba07 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 @@ -16,8 +16,8 @@ Signed-off-by: Andreas Färber --- linux-user/mmap.c | 3 +++ tcg/tcg.c | 36 ++++++++++++++++++++++++++++++++++-- - tcg/tcg.h | 5 +++++ - 3 files changed, 42 insertions(+), 2 deletions(-) + tcg/tcg.h | 6 ++++++ + 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/linux-user/mmap.c b/linux-user/mmap.c index 34a5615..7ebf953 100644 @@ -48,7 +48,7 @@ index 34a5615..7ebf953 100644 } diff --git a/tcg/tcg.c b/tcg/tcg.c -index 7a84b87..7f582f7 100644 +index f1558b7..f7a40ba 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -39,6 +39,8 @@ @@ -90,7 +90,7 @@ index 7a84b87..7f582f7 100644 #if TCG_TARGET_INSN_UNIT_SIZE == 1 static __attribute__((unused)) inline void tcg_out8(TCGContext *s, uint8_t v) { -@@ -339,7 +364,8 @@ void tcg_context_init(TCGContext *s) +@@ -333,7 +358,8 @@ void tcg_context_init(TCGContext *s) memset(s, 0, sizeof(*s)); s->nb_globals = 0; @@ -100,7 +100,7 @@ index 7a84b87..7f582f7 100644 /* Count total number of arguments and allocate the corresponding space */ total_args = 0; -@@ -2558,10 +2584,12 @@ int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf) +@@ -2385,10 +2411,12 @@ int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf) } #endif @@ -113,7 +113,7 @@ index 7a84b87..7f582f7 100644 return tcg_current_code_size(s); } -@@ -2573,7 +2601,11 @@ int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf) +@@ -2400,7 +2428,11 @@ int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf) int tcg_gen_code_search_pc(TCGContext *s, tcg_insn_unit *gen_code_buf, long offset) { @@ -127,7 +127,7 @@ index 7a84b87..7f582f7 100644 #ifdef CONFIG_PROFILER diff --git a/tcg/tcg.h b/tcg/tcg.h -index 7285f71..ea7ef8d 100644 +index add7f75..bbd819e 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -27,6 +27,7 @@ @@ -138,17 +138,18 @@ index 7285f71..ea7ef8d 100644 #include "tcg-target.h" /* Default target word size to pointer size. */ -@@ -533,6 +534,7 @@ struct TCGContext { - - /* The TCGBackendData structure is private to tcg-target.c. */ - struct TCGBackendData *be; +@@ -555,6 +556,8 @@ struct TCGContext { + target_ulong gen_opc_pc[OPC_BUF_SIZE]; + uint16_t gen_opc_icount[OPC_BUF_SIZE]; + uint8_t gen_opc_instr_start[OPC_BUF_SIZE]; ++ + QemuMutex lock; }; extern TCGContext tcg_ctx; -@@ -711,6 +713,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); +@@ -743,6 +746,9 @@ void tcg_gen_callN(TCGContext *s, void *func, + void tcg_op_remove(TCGContext *s, TCGOp *op); + void tcg_optimize(TCGContext *s); +extern void tcg_lock(void); +extern void tcg_unlock(void); diff --git a/0017-linux-user-Run-multi-threaded-code-.patch b/0017-linux-user-Run-multi-threaded-code-.patch index b97dce74..41040476 100644 --- a/0017-linux-user-Run-multi-threaded-code-.patch +++ b/0017-linux-user-Run-multi-threaded-code-.patch @@ -1,4 +1,4 @@ -From e8e669d084f6317fb739c38077bf4f26bbf5ef95 Mon Sep 17 00:00:00 2001 +From b1a2eb97a7f8dffa47c9b5e1edfe62f79d56b26d 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 @@ -19,10 +19,10 @@ Signed-off-by: Alexander Graf 1 file changed, 9 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 84621cc..6fc55b4 100644 +index 69e6f1c..918c241 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -4526,6 +4526,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp, +@@ -4543,6 +4543,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/0018-linux-user-lock-tb-flushing-too.patch b/0018-linux-user-lock-tb-flushing-too.patch index 6c7c4728..d2f98aeb 100644 --- a/0018-linux-user-lock-tb-flushing-too.patch +++ b/0018-linux-user-lock-tb-flushing-too.patch @@ -1,4 +1,4 @@ -From dce867750093888070a7875de37111af6a0d2b58 Mon Sep 17 00:00:00 2001 +From f0dbe90ae92886e7da301ab76cc3e89027665ca4 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 @@ -14,10 +14,10 @@ Signed-off-by: Andreas Färber 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/translate-all.c b/translate-all.c -index ba5c840..17f4260 100644 +index 9f47ce7..c5984fb 100644 --- a/translate-all.c +++ b/translate-all.c -@@ -709,19 +709,23 @@ static TranslationBlock *tb_alloc(target_ulong pc) +@@ -715,19 +715,23 @@ static TranslationBlock *tb_alloc(target_ulong pc) { TranslationBlock *tb; @@ -41,7 +41,7 @@ index ba5c840..17f4260 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. */ -@@ -730,6 +734,7 @@ void tb_free(TranslationBlock *tb) +@@ -736,6 +740,7 @@ void tb_free(TranslationBlock *tb) tcg_ctx.code_gen_ptr = tb->tc_ptr; tcg_ctx.tb_ctx.nb_tbs--; } @@ -49,7 +49,7 @@ index ba5c840..17f4260 100644 } static inline void invalidate_page_bitmap(PageDesc *p) -@@ -787,6 +792,7 @@ void tb_flush(CPUArchState *env1) +@@ -793,6 +798,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 @@ -57,7 +57,7 @@ index ba5c840..17f4260 100644 if ((unsigned long)(tcg_ctx.code_gen_ptr - tcg_ctx.code_gen_buffer) > tcg_ctx.code_gen_buffer_size) { cpu_abort(cpu, "Internal error: code buffer overflow\n"); -@@ -804,6 +810,7 @@ void tb_flush(CPUArchState *env1) +@@ -810,6 +816,7 @@ void tb_flush(CPUArchState *env1) /* XXX: flush processor icache at this point if cache flush is expensive */ tcg_ctx.tb_ctx.tb_flush_count++; @@ -65,7 +65,7 @@ index ba5c840..17f4260 100644 } #ifdef DEBUG_TB_CHECK -@@ -1110,8 +1117,10 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, +@@ -1119,8 +1126,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 */ @@ -76,7 +76,7 @@ index ba5c840..17f4260 100644 return; } if (!p->code_bitmap && -@@ -1204,6 +1213,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, +@@ -1213,6 +1222,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, cpu_resume_from_signal(cpu, NULL); } #endif @@ -84,7 +84,7 @@ index ba5c840..17f4260 100644 } /* len must be <= 8 and start must be a multiple of len */ -@@ -1415,13 +1425,16 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr) +@@ -1424,13 +1434,16 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr) { int m_min, m_max, m; uintptr_t v; @@ -102,7 +102,7 @@ index ba5c840..17f4260 100644 return NULL; } /* binary search (cf Knuth) */ -@@ -1432,6 +1445,7 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr) +@@ -1441,6 +1454,7 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr) tb = &tcg_ctx.tb_ctx.tbs[m]; v = (uintptr_t)tb->tc_ptr; if (v == tc_ptr) { @@ -110,7 +110,7 @@ index ba5c840..17f4260 100644 return tb; } else if (tc_ptr < v) { m_max = m - 1; -@@ -1439,7 +1453,9 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr) +@@ -1448,7 +1462,9 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr) m_min = m + 1; } } @@ -120,4 +120,4 @@ index ba5c840..17f4260 100644 + return r; } - #if defined(TARGET_HAS_ICE) && !defined(CONFIG_USER_ONLY) + #if !defined(CONFIG_USER_ONLY) diff --git a/0019-linux-user-Fake-proc-cpuinfo.patch b/0019-linux-user-Fake-proc-cpuinfo.patch index c4583d6b..1c94342f 100644 --- a/0019-linux-user-Fake-proc-cpuinfo.patch +++ b/0019-linux-user-Fake-proc-cpuinfo.patch @@ -1,4 +1,4 @@ -From f8efdf93368a0f98d8608c44590e2c9f1ed44397 Mon Sep 17 00:00:00 2001 +From ccc5654782e3fd6ab5e6e55811c3c79c8079d233 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 @@ -22,10 +22,10 @@ Signed-off-by: Andreas Färber 1 file changed, 20 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 6fc55b4..de930eb 100644 +index 918c241..bcf9c35 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5344,6 +5344,25 @@ static int open_self_stat(void *cpu_env, int fd) +@@ -5361,6 +5361,25 @@ static int open_self_stat(void *cpu_env, int fd) return 0; } @@ -51,7 +51,7 @@ index 6fc55b4..de930eb 100644 static int open_self_auxv(void *cpu_env, int fd) { CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env); -@@ -5458,6 +5477,7 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, +@@ -5475,6 +5494,7 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, #if defined(HOST_WORDS_BIGENDIAN) != defined(TARGET_WORDS_BIGENDIAN) { "/proc/net/route", open_net_route, is_proc }, #endif diff --git a/0020-linux-user-implement-FS_IOC_GETFLAG.patch b/0020-linux-user-implement-FS_IOC_GETFLAG.patch index 81710956..707387b0 100644 --- a/0020-linux-user-implement-FS_IOC_GETFLAG.patch +++ b/0020-linux-user-implement-FS_IOC_GETFLAG.patch @@ -1,4 +1,4 @@ -From d905cad0394b79353ae9bbcaea0d44228182a45c Mon Sep 17 00:00:00 2001 +From a4f1607a34a435386492ed9583ad1343b306a54d 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 @@ -28,10 +28,10 @@ index c180faf..8650a70 100644 IOCTL(SIOCATMARK, 0, TYPE_NULL) IOCTL(SIOCGIFNAME, IOC_RW, MK_PTR(TYPE_INT)) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h -index d6ccacc..be03d90 100644 +index 9fabee7..c8e47cf 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h -@@ -2477,6 +2477,8 @@ struct target_f_owner_ex { +@@ -2436,6 +2436,8 @@ struct target_f_owner_ex { #define TARGET_MTIOCGET TARGET_IOR('m', 2, struct mtget) #define TARGET_MTIOCPOS TARGET_IOR('m', 3, struct mtpos) diff --git a/0021-linux-user-implement-FS_IOC_SETFLAG.patch b/0021-linux-user-implement-FS_IOC_SETFLAG.patch index 5b7830eb..f3fbe801 100644 --- a/0021-linux-user-implement-FS_IOC_SETFLAG.patch +++ b/0021-linux-user-implement-FS_IOC_SETFLAG.patch @@ -1,4 +1,4 @@ -From 4eec12072f7b5deb36f6e84a44acfdc979a16901 Mon Sep 17 00:00:00 2001 +From 269ab75ddd80189af02fc4a63eae6879283c6386 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 @@ -28,10 +28,10 @@ index 8650a70..f9f7c83 100644 IOCTL(SIOCATMARK, 0, TYPE_NULL) IOCTL(SIOCGIFNAME, IOC_RW, MK_PTR(TYPE_INT)) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h -index be03d90..f750d4c 100644 +index c8e47cf..1a8816d 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h -@@ -2478,6 +2478,7 @@ struct target_f_owner_ex { +@@ -2437,6 +2437,7 @@ struct target_f_owner_ex { #define TARGET_MTIOCPOS TARGET_IOR('m', 3, struct mtpos) #define TARGET_FS_IOC_GETFLAGS TARGET_IORU('f', 1) diff --git a/0022-linux-user-XXX-disable-fiemap.patch b/0022-linux-user-XXX-disable-fiemap.patch index c2175d02..e80e8a39 100644 --- a/0022-linux-user-XXX-disable-fiemap.patch +++ b/0022-linux-user-XXX-disable-fiemap.patch @@ -1,4 +1,4 @@ -From 579bfaa3dd897fd3c0dc33072e46051c8f01c182 Mon Sep 17 00:00:00 2001 +From 6a9b4c81f3286ffe3618adb21d3cdab6c8bf9271 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 @@ -9,10 +9,10 @@ agraf: fiemap breaks in libarchive. Disable it for now. 1 file changed, 5 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index de930eb..199084f 100644 +index bcf9c35..1d708bf 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -3318,6 +3318,11 @@ static abi_long do_ioctl_fs_ioc_fiemap(const IOCTLEntry *ie, uint8_t *buf_temp, +@@ -3333,6 +3333,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/0023-slirp-nooutgoing.patch b/0023-slirp-nooutgoing.patch index 2070a523..193e17b3 100644 --- a/0023-slirp-nooutgoing.patch +++ b/0023-slirp-nooutgoing.patch @@ -1,4 +1,4 @@ -From 0f3c54d2f0ba8e3b607b98eae7987226c73fdd93 Mon Sep 17 00:00:00 2001 +From 1dc47b4ec4a0f91f5d8cf9c956386831e26cc9e7 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 @@ -12,10 +12,10 @@ TBD (from SUSE Studio team) 4 files changed, 40 insertions(+) diff --git a/qemu-options.hx b/qemu-options.hx -index 64af16d..4424eab 100644 +index c513352..a447d3c 100644 --- a/qemu-options.hx +++ b/qemu-options.hx -@@ -2821,6 +2821,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU +@@ -2879,6 +2879,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU from a script. ETEXI @@ -97,10 +97,10 @@ index 7571c5a..0555e18 100644 socket_set_fast_reuse(s); opt = 1; diff --git a/vl.c b/vl.c -index eb89d62..1c96f7f 100644 +index 694deb4..ee4d68f 100644 --- a/vl.c +++ b/vl.c -@@ -164,6 +164,7 @@ const char *vnc_display; +@@ -163,6 +163,7 @@ int smp_threads = 1; int acpi_enabled = 1; int no_hpet = 0; int fd_bootchk = 1; @@ -108,7 +108,7 @@ index eb89d62..1c96f7f 100644 static int no_reboot; int no_shutdown = 0; int cursor_hide = 1; -@@ -3234,6 +3235,14 @@ int main(int argc, char **argv, char **envp) +@@ -3144,6 +3145,14 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_singlestep: singlestep = 1; break; diff --git a/0024-vnc-password-file-and-incoming-conn.patch b/0024-vnc-password-file-and-incoming-conn.patch index 2654a093..9e1c5516 100644 --- a/0024-vnc-password-file-and-incoming-conn.patch +++ b/0024-vnc-password-file-and-incoming-conn.patch @@ -1,26 +1,27 @@ -From a1b57e540db8c75278ae1208ea22425f27723396 Mon Sep 17 00:00:00 2001 +From 5762072dcfd4c76623ee8d95341e1357ea83384e 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 file changed, 71 insertions(+) + ui/vnc.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 55 insertions(+) diff --git a/ui/vnc.c b/ui/vnc.c -index 5707015..f42340b 100644 +index 6f9b718..a09f7c1 100644 --- a/ui/vnc.c +++ b/ui/vnc.c -@@ -47,6 +47,7 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 }; - #include "d3des.h" +@@ -51,6 +51,8 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 }; + static QTAILQ_HEAD(, VncDisplay) vnc_displays = + QTAILQ_HEAD_INITIALIZER(vnc_displays); - static VncDisplay *vnc_display; /* needed for info vnc */ +static int allowed_connections = 0; - ++ static int vnc_cursor_define(VncState *vs); static void vnc_release_modifiers(VncState *vs); -@@ -1039,6 +1040,7 @@ static void vnc_disconnect_start(VncState *vs) + +@@ -1221,6 +1223,7 @@ static void vnc_disconnect_start(VncState *vs) void vnc_disconnect_finish(VncState *vs) { int i; @@ -28,7 +29,7 @@ index 5707015..f42340b 100644 vnc_jobs_join(vs); /* Wait encoding jobs */ -@@ -1087,6 +1089,13 @@ void vnc_disconnect_finish(VncState *vs) +@@ -1269,6 +1272,13 @@ void vnc_disconnect_finish(VncState *vs) } g_free(vs->lossy_rect); g_free(vs); @@ -42,25 +43,25 @@ index 5707015..f42340b 100644 } int vnc_client_io_error(VncState *vs, int ret, int last_errno) -@@ -3050,6 +3059,39 @@ char *vnc_display_local_addr(DisplayState *ds) +@@ -3251,6 +3261,39 @@ char *vnc_display_local_addr(const char *id) return vnc_socket_local_addr("%s:%s", vs->lsock); } -+static void read_file_password(DisplayState *ds, char *filename) ++static void read_file_password(const char *id, const char *filename) +{ + FILE *pfile = NULL; + char *passwd = NULL; + int start = 0, length = 0, rc = 0; + -+ if(strlen(filename) == 0) { -+ printf("No file supplied\n"); -+ return; ++ if (strlen(filename) == 0) { ++ printf("No file supplied\n"); ++ return; + } + + pfile = fopen(filename, "r"); -+ if(pfile == NULL) { -+ printf("Could not read from %s\n", filename); -+ return; ++ if (pfile == NULL) { ++ printf("Could not read from %s\n", filename); ++ return; + } + + start = ftell(pfile); @@ -68,60 +69,64 @@ index 5707015..f42340b 100644 + length = ftell(pfile); + fseek(pfile, 0L, start); + -+ passwd = malloc(length+1); ++ passwd = g_malloc(length + 1); + rc = fread(passwd, 1, length, pfile); + fclose(pfile); + -+ if(rc == length && rc > 0) { -+ vnc_display_password(ds, passwd); ++ if (rc == length && rc > 0) { ++ vnc_display_password(id, passwd); + } + -+ free(passwd); ++ g_free(passwd); +} + - void vnc_display_open(DisplayState *ds, const char *display, Error **errp) - { - VncDisplay *vs = vnc_display; -@@ -3083,6 +3125,9 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp) - while ((options = strchr(options, ','))) { - options++; - if (strncmp(options, "password", 8) == 0) { -+ char *start, *end; -+ start = strchr(options, '='); -+ end = strchr(options, ','); - if (fips_get_state()) { - error_setg(errp, - "VNC password auth disabled due to FIPS mode, " -@@ -3091,6 +3136,32 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp) - goto fail; - } - password = 1; /* Require password auth */ -+ if (start && (!end || (start < end))) { -+ int len = end ? end-(start+1) : strlen(start+1); -+ char *text = g_malloc(len+1); -+ strncpy(text, start+1, len); -+ text[len] = '\0'; -+ -+ if (strncmp(options, "password-file=", 14) == 0) { -+ read_file_password(ds, text); -+ } else { -+ vnc_display_password(ds, text); -+ } -+ -+ free(text); -+ } -+ } else if (strncmp(options, "allowed-connections=", 20) == 0) { -+ char *start, *end; -+ start = strchr(options, '='); -+ end = strchr(options, ','); -+ if (start && (!end || (start < end))) { -+ int len = end ? end-(start+1) : strlen(start+1); -+ char *text = g_malloc(len+1); -+ strncpy(text, start+1, len); -+ text[len] = '\0'; -+ VNC_DEBUG("Maximum number of disconnects: %s\n", text); -+ allowed_connections = atoi(text); -+ } - } else if (strncmp(options, "reverse", 7) == 0) { - reverse = 1; - } else if (strncmp(options, "no-lock-key-sync", 16) == 0) { + static QemuOptsList qemu_vnc_opts = { + .name = "vnc", + .head = QTAILQ_HEAD_INITIALIZER(qemu_vnc_opts.head), +@@ -3278,6 +3321,9 @@ static QemuOptsList qemu_vnc_opts = { + .name = "connections", + .type = QEMU_OPT_NUMBER, + },{ ++ .name = "allowed-connections", ++ .type = QEMU_OPT_NUMBER, ++ },{ + .name = "to", + .type = QEMU_OPT_NUMBER, + },{ +@@ -3290,6 +3336,9 @@ static QemuOptsList qemu_vnc_opts = { + .name = "password", + .type = QEMU_OPT_BOOL, + },{ ++ .name = "password-file", ++ .type = QEMU_OPT_STRING, ++ },{ + .name = "reverse", + .type = QEMU_OPT_BOOL, + },{ +@@ -3326,6 +3375,7 @@ void vnc_display_open(const char *id, Error **errp) + const char *share, *device_id; + QemuConsole *con; + bool password = false; ++ const char *password_file; + bool reverse = false; + const char *vnc; + const char *has_to; +@@ -3401,6 +3451,10 @@ void vnc_display_open(const char *id, Error **errp) + "methods as an alternative"); + goto fail; + } ++ password_file = qemu_opt_get(opts, "password-file"); ++ if (password_file) { ++ read_file_password(id, password_file); ++ } + + reverse = qemu_opt_get_bool(opts, "reverse", false); + lock_key_sync = qemu_opt_get_bool(opts, "lock-key-sync", true); +@@ -3445,6 +3499,7 @@ void vnc_display_open(const char *id, Error **errp) + vs->share_policy = VNC_SHARE_POLICY_ALLOW_EXCLUSIVE; + } + vs->connections_limit = qemu_opt_get_number(opts, "connections", 32); ++ allowed_connections = qemu_opt_get_number(opts, "allowed-connections", 0); + + #ifdef CONFIG_VNC_WS + websocket = qemu_opt_get(opts, "websocket"); diff --git a/0025-linux-user-add-more-blk-ioctls.patch b/0025-linux-user-add-more-blk-ioctls.patch index d54b41f8..8ffb4358 100644 --- a/0025-linux-user-add-more-blk-ioctls.patch +++ b/0025-linux-user-add-more-blk-ioctls.patch @@ -1,4 +1,4 @@ -From 62b202fd44cd3e5148c950bfdf2ee40f47b4e9a5 Mon Sep 17 00:00:00 2001 +From 8a82ca25e42fb9b547bb3df6758584d375876042 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 @@ -42,10 +42,10 @@ index f9f7c83..8eb4446 100644 IOCTL(BLKRASET, 0, TYPE_INT) IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG)) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h -index f750d4c..15fe242 100644 +index 1a8816d..f3ac211 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h -@@ -930,6 +930,12 @@ struct target_pollfd { +@@ -937,6 +937,12 @@ struct target_pollfd { #define TARGET_BLKGETSIZE64 TARGET_IOR(0x12,114,abi_ulong) /* return device size in bytes (u64 *arg) */ diff --git a/0026-linux-user-use-target_ulong.patch b/0026-linux-user-use-target_ulong.patch index b3bf6cbd..f4143da8 100644 --- a/0026-linux-user-use-target_ulong.patch +++ b/0026-linux-user-use-target_ulong.patch @@ -1,4 +1,4 @@ -From 3108d4f03c8124927f6462967a9d80f2049fae19 Mon Sep 17 00:00:00 2001 +From 401ccedfe65286e896b6ff4651dad0196a724be7 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 @@ -36,10 +36,10 @@ index e29c7f3..75b6558 100644 extern THREAD CPUState *thread_cpu; void cpu_loop(CPUArchState *env); diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 199084f..02599ce 100644 +index 1d708bf..9aa15dc 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5630,10 +5630,10 @@ int syscall_restartable(int syscall_nr) +@@ -5647,10 +5647,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/0027-block-Add-support-for-DictZip-enabl.patch b/0027-block-Add-support-for-DictZip-enabl.patch index 5711f677..34164a8e 100644 --- a/0027-block-Add-support-for-DictZip-enabl.patch +++ b/0027-block-Add-support-for-DictZip-enabl.patch @@ -1,4 +1,4 @@ -From 6cba6c6438b0ca67aa0e2b869e109f31d4a889a3 Mon Sep 17 00:00:00 2001 +From df055bd529dbe5dfd85014d6089d231f649b1e10 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Wed, 5 Aug 2009 09:49:37 +0200 Subject: [PATCH] block: Add support for DictZip enabled gzip files @@ -41,10 +41,10 @@ Signed-off-by: Andreas Färber create mode 100644 block/dictzip.c diff --git a/block/Makefile.objs b/block/Makefile.objs -index 04b0e43..080fd26 100644 +index db2933e..1c6f9cf 100644 --- a/block/Makefile.objs +++ b/block/Makefile.objs -@@ -24,6 +24,7 @@ block-obj-y += accounting.o +@@ -25,6 +25,7 @@ block-obj-y += write-threshold.o common-obj-y += stream.o common-obj-y += commit.o common-obj-y += backup.o diff --git a/0028-block-Add-tar-container-format.patch b/0028-block-Add-tar-container-format.patch index 1a88fc1f..626dd549 100644 --- a/0028-block-Add-tar-container-format.patch +++ b/0028-block-Add-tar-container-format.patch @@ -1,4 +1,4 @@ -From 91448986f22a2b293d79ef101680ce6a681163c3 Mon Sep 17 00:00:00 2001 +From f767767a5bd19552ba1968561e2ca191c1328a16 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Wed, 5 Aug 2009 17:28:38 +0200 Subject: [PATCH] block: Add tar container format @@ -42,10 +42,10 @@ Signed-off-by: Andreas Färber create mode 100644 block/tar.c diff --git a/block/Makefile.objs b/block/Makefile.objs -index 080fd26..0790d19 100644 +index 1c6f9cf..c7e2178 100644 --- a/block/Makefile.objs +++ b/block/Makefile.objs -@@ -25,6 +25,7 @@ common-obj-y += stream.o +@@ -26,6 +26,7 @@ common-obj-y += stream.o common-obj-y += commit.o common-obj-y += backup.o common-obj-y += dictzip.o diff --git a/0029-Legacy-Patch-kvm-qemu-preXX-dictzip.patch b/0029-Legacy-Patch-kvm-qemu-preXX-dictzip.patch index 7c269467..f7aae155 100644 --- a/0029-Legacy-Patch-kvm-qemu-preXX-dictzip.patch +++ b/0029-Legacy-Patch-kvm-qemu-preXX-dictzip.patch @@ -1,4 +1,4 @@ -From d0549750c5d361cf6e766c539c7b6f1fb913cd27 Mon Sep 17 00:00:00 2001 +From 53b044412aa1c768a69351e6fbf0e5cb99a87ba4 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 diff --git a/0030-Legacy-Patch-kvm-qemu-preXX-report-.patch b/0030-net-Warn-about-default-MAC-address.patch similarity index 56% rename from 0030-Legacy-Patch-kvm-qemu-preXX-report-.patch rename to 0030-net-Warn-about-default-MAC-address.patch index 5a67b2c2..1d3ff220 100644 --- a/0030-Legacy-Patch-kvm-qemu-preXX-report-.patch +++ b/0030-net-Warn-about-default-MAC-address.patch @@ -1,17 +1,26 @@ -From 400e598989d5f6d2a6ae101793bcd24934658a57 Mon Sep 17 00:00:00 2001 +From b3343a0ecb332a13170fdad61aa6877305d081f8 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 +Subject: [PATCH] net: Warn about default MAC address +[AF: Suppress for QTest] --- - net/net.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) + net/net.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) diff --git a/net/net.c b/net/net.c -index 7acc162..1c7ff12 100644 +index 0be084d..552e233 100644 --- a/net/net.c +++ b/net/net.c -@@ -160,6 +160,27 @@ void qemu_format_nic_info_str(NetClientState *nc, uint8_t macaddr[6]) +@@ -42,6 +42,7 @@ + #include "qapi/opts-visitor.h" + #include "qapi/dealloc-visitor.h" + #include "sysemu/sysemu.h" ++#include "sysemu/qtest.h" + + /* Net bridge is currently not supported for W32. */ + #if !defined(_WIN32) +@@ -160,6 +161,28 @@ void qemu_format_nic_info_str(NetClientState *nc, uint8_t macaddr[6]) macaddr[3], macaddr[4], macaddr[5]); } @@ -21,14 +30,15 @@ index 7acc162..1c7ff12 100644 + static int warned = 0; + int i; + -+ for (i = 0; i < MAX_NICS; i++) -+ { -+ if (!nd_table[i].used) ++ for (i = 0; i < MAX_NICS; i++) { ++ if (!nd_table[i].used) { + continue; -+ if (memcmp(nd_table[i].macaddr.a, def_mac.a, 5)) ++ } ++ if (memcmp(nd_table[i].macaddr.a, def_mac.a, 5)) { + continue; ++ } + if (nd_table[i].macaddr.a[5] >= 0x56 && -+ nd_table[i].macaddr.a[5] < 0x56 + MAX_NICS && !warned) { ++ nd_table[i].macaddr.a[5] < 0x56 + MAX_NICS && !warned && !qtest_enabled()) { + warned = 1; + fprintf(stderr, "Warning: default mac address being used, creating " + "potential for address conflict\n"); @@ -39,7 +49,7 @@ index 7acc162..1c7ff12 100644 void qemu_macaddr_default_if_unset(MACAddr *macaddr) { static int index = 0; -@@ -1314,6 +1335,7 @@ int net_init_clients(void) +@@ -1313,6 +1336,7 @@ int net_init_clients(void) if (qemu_opts_foreach(net, net_init_client, NULL, 1) == -1) { return -1; } diff --git a/0031-console-add-question-mark-escape-op.patch b/0031-console-add-question-mark-escape-op.patch index 39a24090..2eb0ea9e 100644 --- a/0031-console-add-question-mark-escape-op.patch +++ b/0031-console-add-question-mark-escape-op.patch @@ -1,4 +1,4 @@ -From 7e990dfe340a04dda4fa87deea9057dfbd7932e6 Mon Sep 17 00:00:00 2001 +From f5050ecb22d9364e905b05257637b1fd7f4a4409 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 @@ -16,7 +16,7 @@ Signed-off-by: Alexander Graf 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/console.c b/ui/console.c -index 258af5d..59b5077 100644 +index b15ca87..a2364e6 100644 --- a/ui/console.c +++ b/ui/console.c @@ -853,7 +853,7 @@ static void console_putchar(QemuConsole *s, int ch) diff --git a/0032-Make-char-muxer-more-robust-wrt-sma.patch b/0032-Make-char-muxer-more-robust-wrt-sma.patch index ea3b68d6..12d03e1c 100644 --- a/0032-Make-char-muxer-more-robust-wrt-sma.patch +++ b/0032-Make-char-muxer-more-robust-wrt-sma.patch @@ -1,4 +1,4 @@ -From 5dd9c864211748f66cfcb24f1b623c935e88d13c Mon Sep 17 00:00:00 2001 +From 65d9d57555716647319048e305770ad03832baa6 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 @@ -22,7 +22,7 @@ This patch fixes input when using -nographic on s390 for me. 1 file changed, 16 insertions(+) diff --git a/qemu-char.c b/qemu-char.c -index a8b01da..2780d14 100644 +index a405d76..471ccfe 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -403,6 +403,9 @@ typedef struct { diff --git a/0033-linux-user-lseek-explicitly-cast-no.patch b/0033-linux-user-lseek-explicitly-cast-no.patch index 38d58089..07e3fd35 100644 --- a/0033-linux-user-lseek-explicitly-cast-no.patch +++ b/0033-linux-user-lseek-explicitly-cast-no.patch @@ -1,4 +1,4 @@ -From 9cf331fd06886bcec7a50c92f4385ca82317bf3a Mon Sep 17 00:00:00 2001 +From 3c073db35b5c13dab97c594688653be68eec98db 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 non-set offsets to signed @@ -16,10 +16,10 @@ Signed-off-by: Alexander Graf 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 02599ce..a41dd43 100644 +index 9aa15dc..3e5e2d3 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5941,9 +5941,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1, +@@ -5958,9 +5958,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1, case TARGET_NR_oldstat: goto unimplemented; #endif diff --git a/0034-virtfs-proxy-helper-Provide-__u64-f.patch b/0034-virtfs-proxy-helper-Provide-__u64-f.patch index a734ac0b..5458bec6 100644 --- a/0034-virtfs-proxy-helper-Provide-__u64-f.patch +++ b/0034-virtfs-proxy-helper-Provide-__u64-f.patch @@ -1,4 +1,4 @@ -From e5d1f2561996297157d72b0af5442d71936c491f Mon Sep 17 00:00:00 2001 +From d1dc6aaab69df4019a398e93a55a610aa8e0ca0c Mon Sep 17 00:00:00 2001 From: Bruce Rogers Date: Thu, 16 May 2013 12:39:10 +0200 Subject: [PATCH] virtfs-proxy-helper: Provide __u64 for broken @@ -12,7 +12,7 @@ Fixes the build on SLE 11 SP2. 1 file changed, 7 insertions(+) diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c -index cd291d3..7d7aa67 100644 +index 13fe032..ebd75a7 100644 --- a/fsdev/virtfs-proxy-helper.c +++ b/fsdev/virtfs-proxy-helper.c @@ -9,6 +9,13 @@ diff --git a/0035-configure-Enable-PIE-for-ppc-and-pp.patch b/0035-configure-Enable-PIE-for-ppc-and-pp.patch index 40a598de..36c850d0 100644 --- a/0035-configure-Enable-PIE-for-ppc-and-pp.patch +++ b/0035-configure-Enable-PIE-for-ppc-and-pp.patch @@ -1,4 +1,4 @@ -From e54a63d9b564342f7b9c777a0a225d888fdf7716 Mon Sep 17 00:00:00 2001 +From c5b3b3f5ecc19b60719c54aed7bccedf04fb20a9 Mon Sep 17 00:00:00 2001 From: Dinar Valeev Date: Wed, 2 Oct 2013 17:56:03 +0200 Subject: [PATCH] configure: Enable PIE for ppc and ppc64 hosts @@ -14,10 +14,10 @@ Signed-off-by: Andreas Färber 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure -index 47048f0..35fbdb5 100755 +index f74a6fd..4271403 100755 --- a/configure +++ b/configure -@@ -1544,7 +1544,7 @@ fi +@@ -1551,7 +1551,7 @@ fi if test "$pie" = ""; then case "$cpu-$targetos" in diff --git a/0036-qtest-Increase-socket-timeout.patch b/0036-qtest-Increase-socket-timeout.patch index df7bf72c..bcc7753f 100644 --- a/0036-qtest-Increase-socket-timeout.patch +++ b/0036-qtest-Increase-socket-timeout.patch @@ -1,4 +1,4 @@ -From 2d6b36cbf59e2f8e84889c2d52815191992bf421 Mon Sep 17 00:00:00 2001 +From 544ceaa85c8f063fd61af7a00a3d0256972d00b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Thu, 17 Apr 2014 18:39:10 +0200 Subject: [PATCH] qtest: Increase socket timeout diff --git a/0037-AIO-Reduce-number-of-threads-for-32.patch b/0037-AIO-Reduce-number-of-threads-for-32.patch index ec47ca73..714ab502 100644 --- a/0037-AIO-Reduce-number-of-threads-for-32.patch +++ b/0037-AIO-Reduce-number-of-threads-for-32.patch @@ -1,4 +1,4 @@ -From c464e8e38da71cbc136ea2cf6fbf5bddfc25e7d5 Mon Sep 17 00:00:00 2001 +From 2974e1e53a2a2f639dc8ba57a9f6ec2f119fd57d Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Wed, 14 Jan 2015 01:32:11 +0100 Subject: [PATCH] AIO: Reduce number of threads for 32bit hosts diff --git a/0038-linux-user-Fix-emulation-of-splice-.patch b/0038-linux-user-Fix-emulation-of-splice-.patch index f00bafd3..7ee2a37f 100644 --- a/0038-linux-user-Fix-emulation-of-splice-.patch +++ b/0038-linux-user-Fix-emulation-of-splice-.patch @@ -1,4 +1,4 @@ -From 1e915c4c11b3e2bf592f83ed9b7efed3b277cdd4 Mon Sep 17 00:00:00 2001 +From e471c1b79130da7e1b3ed725cd5a147f8698c386 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 5 Feb 2015 12:31:16 +0100 Subject: [PATCH] linux-user: Fix emulation of splice syscall @@ -18,10 +18,10 @@ Signed-off-by: Andreas Färber 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index a41dd43..5f208df 100644 +index 3e5e2d3..2ed71b6 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -9480,15 +9480,29 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1, +@@ -9497,15 +9497,29 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1, { loff_t loff_in, loff_out; loff_t *ploff_in = NULL, *ploff_out = NULL; diff --git a/0039-ide-fix-cmd_write_pio-when-nsectors.patch b/0039-ide-fix-cmd_write_pio-when-nsectors.patch new file mode 100644 index 00000000..a214d021 --- /dev/null +++ b/0039-ide-fix-cmd_write_pio-when-nsectors.patch @@ -0,0 +1,38 @@ +From 7d51103f2e1a7ec7fe0623cc115f450d57f442b4 Mon Sep 17 00:00:00 2001 +From: John Snow +Date: Thu, 19 Mar 2015 20:24:13 -0400 +Subject: [PATCH] ide: fix cmd_write_pio when nsectors > 1 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We need to adjust the sector being written to +prior to calling ide_transfer_start, otherwise +we'll write to the same sector again. + +Signed-off-by: John Snow +Signed-off-by: Andreas Färber +--- + hw/ide/core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hw/ide/core.c b/hw/ide/core.c +index ef52f35..0e9da64 100644 +--- a/hw/ide/core.c ++++ b/hw/ide/core.c +@@ -846,6 +846,7 @@ static void ide_sector_write_cb(void *opaque, int ret) + s->nsector -= n; + s->io_buffer_offset += 512 * n; + ++ ide_set_sector(s, ide_get_sector(s) + n); + if (s->nsector == 0) { + /* no more sectors to write */ + ide_transfer_stop(s); +@@ -857,7 +858,6 @@ static void ide_sector_write_cb(void *opaque, int ret) + ide_transfer_start(s, s->io_buffer, n1 * BDRV_SECTOR_SIZE, + ide_sector_write); + } +- ide_set_sector(s, ide_get_sector(s) + n); + + if (win2k_install_hack && ((++s->irq_count % 16) == 0)) { + /* It seems there is a bug in the Windows 2000 installer HDD diff --git a/0040-ide-fix-cmd_read_pio-when-nsectors-.patch b/0040-ide-fix-cmd_read_pio-when-nsectors-.patch new file mode 100644 index 00000000..1664484d --- /dev/null +++ b/0040-ide-fix-cmd_read_pio-when-nsectors-.patch @@ -0,0 +1,39 @@ +From bac9220185506f9d0c5ad93a23789334898c3860 Mon Sep 17 00:00:00 2001 +From: John Snow +Date: Thu, 19 Mar 2015 20:24:14 -0400 +Subject: [PATCH] ide: fix cmd_read_pio when nsectors > 1 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Similar to the cmd_write_pio fix, update the nsector count and +ide sector before we invoke ide_transfer_start. + +Signed-off-by: John Snow +Signed-off-by: Andreas Färber +--- + hw/ide/core.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/hw/ide/core.c b/hw/ide/core.c +index 0e9da64..a895fd8 100644 +--- a/hw/ide/core.c ++++ b/hw/ide/core.c +@@ -587,14 +587,12 @@ static void ide_sector_read_cb(void *opaque, int ret) + n = s->req_nb_sectors; + } + +- /* Allow the guest to read the io_buffer */ +- ide_transfer_start(s, s->io_buffer, n * BDRV_SECTOR_SIZE, ide_sector_read); +- +- ide_set_irq(s->bus); +- + ide_set_sector(s, ide_get_sector(s) + n); + s->nsector -= n; ++ /* Allow the guest to read the io_buffer */ ++ ide_transfer_start(s, s->io_buffer, n * BDRV_SECTOR_SIZE, ide_sector_read); + s->io_buffer_offset += 512 * n; ++ ide_set_irq(s->bus); + } + + static void ide_sector_read(IDEState *s) diff --git a/0041-ahci-Fix-sglist-offset-manipulation.patch b/0041-ahci-Fix-sglist-offset-manipulation.patch new file mode 100644 index 00000000..4c915e21 --- /dev/null +++ b/0041-ahci-Fix-sglist-offset-manipulation.patch @@ -0,0 +1,38 @@ +From ec2869aba738e3eea46a3202f41f1d5efe38325b Mon Sep 17 00:00:00 2001 +From: John Snow +Date: Thu, 19 Mar 2015 20:24:15 -0400 +Subject: [PATCH] ahci: Fix sglist offset manipulation for BE machines +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This does not bother DMA, because DMA generally transfers +the entire SGList in one shot if it can. + +PIO, on the other hand, tries to transfer just one sector +at a time, and will make multiple visits to the sglist +to fetch memory addresses. + +Fix the memory address calculaton when we have an offset +by moving the offset addition OUTSIDE of the le64_to_cpu +calculation. + +Signed-off-by: John Snow +Signed-off-by: Andreas Färber +--- + hw/ide/ahci.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c +index e1ae36f..7a223be 100644 +--- a/hw/ide/ahci.c ++++ b/hw/ide/ahci.c +@@ -799,7 +799,7 @@ static int ahci_populate_sglist(AHCIDevice *ad, QEMUSGList *sglist, + + qemu_sglist_init(sglist, qbus->parent, (sglist_alloc_hint - off_idx), + ad->hba->as); +- qemu_sglist_add(sglist, le64_to_cpu(tbl[off_idx].addr + off_pos), ++ qemu_sglist_add(sglist, le64_to_cpu(tbl[off_idx].addr) + off_pos, + prdt_tbl_entry_size(&tbl[off_idx]) - off_pos); + + for (i = off_idx + 1; i < sglist_alloc_hint; i++) { diff --git a/0042-ahci-test-improve-rw-buffer-pattern.patch b/0042-ahci-test-improve-rw-buffer-pattern.patch new file mode 100644 index 00000000..dad84c81 --- /dev/null +++ b/0042-ahci-test-improve-rw-buffer-pattern.patch @@ -0,0 +1,94 @@ +From cd75c139869ea1fa98eeaf2d8b7004d8da0e1bbe Mon Sep 17 00:00:00 2001 +From: John Snow +Date: Thu, 19 Mar 2015 20:24:16 -0400 +Subject: [PATCH] ahci-test: improve rw buffer patterns +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +My pattern was cyclical every 256 bytes, so it missed a fairly obvious +failure case. Add some rand() pepper into the test pattern, and for large +patterns that exceed 256 sectors, start writing an ID per-sector so that +we never generate identical sector patterns. + +Signed-off-by: John Snow +Signed-off-by: Andreas Färber +--- + tests/ahci-test.c | 36 ++++++++++++++++++++++++++++-------- + 1 file changed, 28 insertions(+), 8 deletions(-) + +diff --git a/tests/ahci-test.c b/tests/ahci-test.c +index cf0b98b..82e2efd 100644 +--- a/tests/ahci-test.c ++++ b/tests/ahci-test.c +@@ -68,6 +68,32 @@ static void string_bswap16(uint16_t *s, size_t bytes) + } + } + ++static void generate_pattern(void *buffer, size_t len, size_t cycle_len) ++{ ++ int i, j; ++ unsigned char *tx = (unsigned char *)buffer; ++ unsigned char p; ++ size_t *sx; ++ ++ /* Write an indicative pattern that varies and is unique per-cycle */ ++ p = rand() % 256; ++ for (i = j = 0; i < len; i++, j++) { ++ tx[i] = p; ++ if (j % cycle_len == 0) { ++ p = rand() % 256; ++ } ++ } ++ ++ /* force uniqueness by writing an id per-cycle */ ++ for (i = 0; i < len / cycle_len; i++) { ++ j = i * cycle_len; ++ if (j + sizeof(*sx) <= len) { ++ sx = (size_t *)&tx[j]; ++ *sx = i; ++ } ++ } ++} ++ + /*** Test Setup & Teardown ***/ + + /** +@@ -736,7 +762,6 @@ static void ahci_test_io_rw_simple(AHCIQState *ahci, unsigned bufsize, + { + uint64_t ptr; + uint8_t port; +- unsigned i; + unsigned char *tx = g_malloc(bufsize); + unsigned char *rx = g_malloc0(bufsize); + +@@ -752,9 +777,7 @@ static void ahci_test_io_rw_simple(AHCIQState *ahci, unsigned bufsize, + g_assert(ptr); + + /* Write some indicative pattern to our buffer. */ +- for (i = 0; i < bufsize; i++) { +- tx[i] = (bufsize - i); +- } ++ generate_pattern(tx, bufsize, AHCI_SECTOR_SIZE); + memwrite(ptr, tx, bufsize); + + /* Write this buffer to disk, then read it back to the DMA buffer. */ +@@ -865,7 +888,6 @@ static void test_dma_fragmented(void) + size_t bufsize = 4096; + unsigned char *tx = g_malloc(bufsize); + unsigned char *rx = g_malloc0(bufsize); +- unsigned i; + uint64_t ptr; + + ahci = ahci_boot_and_enable(); +@@ -873,9 +895,7 @@ static void test_dma_fragmented(void) + ahci_port_clear(ahci, px); + + /* create pattern */ +- for (i = 0; i < bufsize; i++) { +- tx[i] = (bufsize - i); +- } ++ generate_pattern(tx, bufsize, AHCI_SECTOR_SIZE); + + /* Create a DMA buffer in guest memory, and write our pattern to it. */ + ptr = guest_alloc(ahci->parent->alloc, bufsize); diff --git a/libcacard.changes b/libcacard.changes index 9e1eb6df..39c429b8 100644 --- a/libcacard.changes +++ b/libcacard.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Mar 20 15:03:16 UTC 2015 - afaerber@suse.de + +- Update to v2.3.0-rc0: See http://wiki.qemu-project.org/ChangeLog/2.3 +* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3 +* Patches dropped: + 0030-Legacy-Patch-kvm-qemu-preXX-report-.patch +* Patches added: + 0030-net-Warn-about-default-MAC-address.patch + 0039-ide-fix-cmd_write_pio-when-nsectors.patch + 0040-ide-fix-cmd_read_pio-when-nsectors-.patch + 0041-ahci-Fix-sglist-offset-manipulation.patch + 0042-ahci-test-improve-rw-buffer-pattern.patch + ------------------------------------------------------------------- Sun Mar 1 12:50:52 UTC 2015 - afaerber@suse.de diff --git a/libcacard.spec b/libcacard.spec index e9bc792a..d7bb77d4 100644 --- a/libcacard.spec +++ b/libcacard.spec @@ -21,9 +21,9 @@ Url: http://www.qemu.org/ Summary: Universal CPU emulator License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT Group: System/Emulators/PC -Version: 2.2.0 +Version: 2.2.90 Release: 0 -Source: http://wiki.qemu.org/download/qemu-2.2.0.tar.bz2 +Source: http://wiki.qemu.org/download/qemu-2.3.0-rc0.tar.bz2 # This patch queue is auto-generated from https://github.com/openSUSE/qemu Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch Patch0002: 0002-XXX-work-around-SA_RESTART-race-wit.patch @@ -54,7 +54,7 @@ Patch0026: 0026-linux-user-use-target_ulong.patch Patch0027: 0027-block-Add-support-for-DictZip-enabl.patch Patch0028: 0028-block-Add-tar-container-format.patch Patch0029: 0029-Legacy-Patch-kvm-qemu-preXX-dictzip.patch -Patch0030: 0030-Legacy-Patch-kvm-qemu-preXX-report-.patch +Patch0030: 0030-net-Warn-about-default-MAC-address.patch Patch0031: 0031-console-add-question-mark-escape-op.patch Patch0032: 0032-Make-char-muxer-more-robust-wrt-sma.patch Patch0033: 0033-linux-user-lseek-explicitly-cast-no.patch @@ -63,6 +63,10 @@ Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch Patch0036: 0036-qtest-Increase-socket-timeout.patch Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch Patch0038: 0038-linux-user-Fix-emulation-of-splice-.patch +Patch0039: 0039-ide-fix-cmd_write_pio-when-nsectors.patch +Patch0040: 0040-ide-fix-cmd_read_pio-when-nsectors-.patch +Patch0041: 0041-ahci-Fix-sglist-offset-manipulation.patch +Patch0042: 0042-ahci-test-improve-rw-buffer-pattern.patch # Please do not add patches manually here, run update_git.sh. # this is to make lint happy Source300: qemu-rpmlintrc @@ -121,7 +125,7 @@ the cards could be pure software constructs. This sub-package contains development files for the Smartcard library. %prep -%setup -q -n qemu-%{version} +%setup -q -n qemu-2.3.0-rc0 %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 @@ -160,6 +164,10 @@ This sub-package contains development files for the Smartcard library. %patch0036 -p1 %patch0037 -p1 %patch0038 -p1 +%patch0039 -p1 +%patch0040 -p1 +%patch0041 -p1 +%patch0042 -p1 %build ./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \ diff --git a/libcacard.spec.in b/libcacard.spec.in index 103f4bd7..00f933a6 100644 --- a/libcacard.spec.in +++ b/libcacard.spec.in @@ -23,7 +23,7 @@ License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT Group: System/Emulators/PC QEMU_VERSION Release: 0 -Source: http://wiki.qemu.org/download/qemu-2.2.0.tar.bz2 +Source: http://wiki.qemu.org/download/qemu-2.3.0-rc0.tar.bz2 # This patch queue is auto-generated from https://github.com/openSUSE/qemu PATCH_FILES # Please do not add patches manually here, run update_git.sh. @@ -84,7 +84,7 @@ the cards could be pure software constructs. This sub-package contains development files for the Smartcard library. %prep -%setup -q -n qemu-%{version} +%setup -q -n qemu-2.3.0-rc0 PATCH_EXEC %build diff --git a/qemu-2.2.0.tar.bz2 b/qemu-2.2.0.tar.bz2 deleted file mode 100644 index 48525ee4..00000000 --- a/qemu-2.2.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b68c9b6c7c694f5489b5a6bffe993cd976ffbb78e7d178eb3bc016caf460039c -size 24316697 diff --git a/qemu-2.2.0.tar.bz2.sig b/qemu-2.2.0.tar.bz2.sig deleted file mode 100644 index 4c6b357d650f55232d2ad5756c955bd0bffc2f33f49947fadd42916dabc7e1f0..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmV+)0pR|L0UQJX0RjL91p-uu92Niy2@o?=$9xRNE8j?(| ziJ)2nqp13sC=d3Yx!`rsLmWR$TYbxBGxdgwJunt05ZPHCxLh$6HWU4ebz$Um#CW^c zpKbJrr-KlCcxk(3o+0&LIiLB5>NpjbsoNL5yT9F&jYm~?0GFMa9~p^WZd9yA*`DJ< z=DS*Xn$&i91~(&ZKHydRna8VuKW9MEJUFSbl6Rao-<0BK(}8;hf2;PoAlh|tzk{dO z5AXCJ5VNS?1G=Eb{t8N;bRH_->&BV8Ku|BXW`|ZIAaN&J19gf+97f_4^|T?i+}&B) l^8IbA(Y|g`$fZ(j1AXfo+5K0R9};V&<}VLK$hq6Yld>Ilh=c$D diff --git a/qemu-2.3.0-rc0.tar.bz2 b/qemu-2.3.0-rc0.tar.bz2 new file mode 100644 index 00000000..4b47b550 --- /dev/null +++ b/qemu-2.3.0-rc0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d386077e7699405eb31e3378d2645d73767d1397800a63c445b7cfc6e4e22614 +size 24684612 diff --git a/qemu-2.3.0-rc0.tar.bz2.sig b/qemu-2.3.0-rc0.tar.bz2.sig new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..a0be71b1dcbd644520559a46fa77dd5e96400e418b8e9ac50ad4e47fbefe1129 GIT binary patch literal 287 zcmV+)0pR|L0UQJX0RjL91p-wFqmTd!2@o?=$9}CC=+c(Ly}=#Ci{X{?&oiB1Tl#!WG3k#}^#`hS*oPF)G6Zf4nD2!QxOfdY`~MS^#heIrGyldn1uUA{sUlUhmYmO6c+7_^K*pNhPnU% literal 0 HcmV?d00001 diff --git a/qemu-linux-user.changes b/qemu-linux-user.changes index 813eeed4..ce03d742 100644 --- a/qemu-linux-user.changes +++ b/qemu-linux-user.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Mar 20 15:03:16 UTC 2015 - afaerber@suse.de + +- Update to v2.3.0-rc0: See http://wiki.qemu-project.org/ChangeLog/2.3 +* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3 +* Patches dropped: + 0030-Legacy-Patch-kvm-qemu-preXX-report-.patch +* Patches added: + 0030-net-Warn-about-default-MAC-address.patch + 0039-ide-fix-cmd_write_pio-when-nsectors.patch + 0040-ide-fix-cmd_read_pio-when-nsectors-.patch + 0041-ahci-Fix-sglist-offset-manipulation.patch + 0042-ahci-test-improve-rw-buffer-pattern.patch + ------------------------------------------------------------------- Sun Mar 1 12:51:39 UTC 2015 - afaerber@suse.de diff --git a/qemu-linux-user.spec b/qemu-linux-user.spec index 5822d0eb..b39b182d 100644 --- a/qemu-linux-user.spec +++ b/qemu-linux-user.spec @@ -21,9 +21,9 @@ Url: http://www.qemu.org/ Summary: Universal CPU emulator License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT Group: System/Emulators/PC -Version: 2.2.0 +Version: 2.2.90 Release: 0 -Source: http://wiki.qemu.org/download/qemu-2.2.0.tar.bz2 +Source: http://wiki.qemu.org/download/qemu-2.3.0-rc0.tar.bz2 # This patch queue is auto-generated from https://github.com/openSUSE/qemu Patch0001: 0001-XXX-dont-dump-core-on-sigabort.patch Patch0002: 0002-XXX-work-around-SA_RESTART-race-wit.patch @@ -54,7 +54,7 @@ Patch0026: 0026-linux-user-use-target_ulong.patch Patch0027: 0027-block-Add-support-for-DictZip-enabl.patch Patch0028: 0028-block-Add-tar-container-format.patch Patch0029: 0029-Legacy-Patch-kvm-qemu-preXX-dictzip.patch -Patch0030: 0030-Legacy-Patch-kvm-qemu-preXX-report-.patch +Patch0030: 0030-net-Warn-about-default-MAC-address.patch Patch0031: 0031-console-add-question-mark-escape-op.patch Patch0032: 0032-Make-char-muxer-more-robust-wrt-sma.patch Patch0033: 0033-linux-user-lseek-explicitly-cast-no.patch @@ -63,6 +63,10 @@ Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch Patch0036: 0036-qtest-Increase-socket-timeout.patch Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch Patch0038: 0038-linux-user-Fix-emulation-of-splice-.patch +Patch0039: 0039-ide-fix-cmd_write_pio-when-nsectors.patch +Patch0040: 0040-ide-fix-cmd_read_pio-when-nsectors-.patch +Patch0041: 0041-ahci-Fix-sglist-offset-manipulation.patch +Patch0042: 0042-ahci-test-improve-rw-buffer-pattern.patch # Please do not add patches manually here, run update_git.sh. # this is to make lint happy Source300: qemu-rpmlintrc @@ -115,7 +119,7 @@ emulations. This can be used together with the OBS build script to run cross-architecture builds. %prep -%setup -q -n qemu-2.2.0 +%setup -q -n qemu-2.3.0-rc0 %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 @@ -154,6 +158,10 @@ run cross-architecture builds. %patch0036 -p1 %patch0037 -p1 %patch0038 -p1 +%patch0039 -p1 +%patch0040 -p1 +%patch0041 -p1 +%patch0042 -p1 %build ./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \ diff --git a/qemu-linux-user.spec.in b/qemu-linux-user.spec.in index 6b23fc28..95b4d62a 100644 --- a/qemu-linux-user.spec.in +++ b/qemu-linux-user.spec.in @@ -23,7 +23,7 @@ License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT Group: System/Emulators/PC QEMU_VERSION Release: 0 -Source: http://wiki.qemu.org/download/qemu-2.2.0.tar.bz2 +Source: http://wiki.qemu.org/download/qemu-2.3.0-rc0.tar.bz2 # This patch queue is auto-generated from https://github.com/openSUSE/qemu PATCH_FILES # Please do not add patches manually here, run update_git.sh. @@ -78,7 +78,7 @@ emulations. This can be used together with the OBS build script to run cross-architecture builds. %prep -%setup -q -n qemu-2.2.0 +%setup -q -n qemu-2.3.0-rc0 PATCH_EXEC %build diff --git a/qemu.changes b/qemu.changes index 8b5d8da6..101eae83 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Fri Mar 20 15:03:16 UTC 2015 - afaerber@suse.de + +- Update to v2.3.0-rc0: See http://wiki.qemu-project.org/ChangeLog/2.3 +* Updated update_git.sh accordingly +* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3 +* seabios_128kb.patch: Added patch to squeeze SeaBIOS into 128 KB + with our gcc 4.8.3 (brogers@suse.com) +- Renamed 0030-Legacy-Patch-kvm-qemu-preXX-report-.patch to + 0030-net-Warn-about-default-MAC-address.patch: + Suppress warning for accel=qtest, to sanitize make check results. +- Added patches to fix ahci-test: + 0039-ide-fix-cmd_write_pio-when-nsectors.patch + 0040-ide-fix-cmd_read_pio-when-nsectors-.patch + 0041-ahci-Fix-sglist-offset-manipulation.patch + 0042-ahci-test-improve-rw-buffer-pattern.patch + ------------------------------------------------------------------- Sun Mar 1 12:50:44 UTC 2015 - afaerber@suse.de diff --git a/qemu.spec b/qemu.spec index cc4b50d1..2be7557a 100644 --- a/qemu.spec +++ b/qemu.spec @@ -43,10 +43,10 @@ Url: http://www.qemu.org/ Summary: Universal CPU emulator License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT Group: System/Emulators/PC -Version: 2.2.0 +Version: 2.2.90 Release: 0 -Source: http://wiki.qemu.org/download/%name-2.2.0.tar.bz2 -Source99: http://wiki.qemu.org/download/%name-2.2.0.tar.bz2.sig +Source: http://wiki.qemu.org/download/%name-2.3.0-rc0.tar.bz2 +Source99: http://wiki.qemu.org/download/%name-2.3.0-rc0.tar.bz2.sig Source1: 80-kvm.rules Source2: qemu-ifup Source3: kvm_stat @@ -84,7 +84,7 @@ Patch0026: 0026-linux-user-use-target_ulong.patch Patch0027: 0027-block-Add-support-for-DictZip-enabl.patch Patch0028: 0028-block-Add-tar-container-format.patch Patch0029: 0029-Legacy-Patch-kvm-qemu-preXX-dictzip.patch -Patch0030: 0030-Legacy-Patch-kvm-qemu-preXX-report-.patch +Patch0030: 0030-net-Warn-about-default-MAC-address.patch Patch0031: 0031-console-add-question-mark-escape-op.patch Patch0032: 0032-Make-char-muxer-more-robust-wrt-sma.patch Patch0033: 0033-linux-user-lseek-explicitly-cast-no.patch @@ -93,7 +93,17 @@ Patch0035: 0035-configure-Enable-PIE-for-ppc-and-pp.patch Patch0036: 0036-qtest-Increase-socket-timeout.patch Patch0037: 0037-AIO-Reduce-number-of-threads-for-32.patch Patch0038: 0038-linux-user-Fix-emulation-of-splice-.patch -# Please do not add patches manually here, run update_git.sh. +Patch0039: 0039-ide-fix-cmd_write_pio-when-nsectors.patch +Patch0040: 0040-ide-fix-cmd_read_pio-when-nsectors-.patch +Patch0041: 0041-ahci-Fix-sglist-offset-manipulation.patch +Patch0042: 0042-ahci-test-improve-rw-buffer-pattern.patch +# Please do not add QEMU patches manually here. +# Run update_git.sh to regenerate this queue. + +# SeaBIOS +%if %{build_x86_fw_from_source} +Patch1000: seabios_128kb.patch +%endif # this is to make lint happy Source300: qemu-rpmlintrc @@ -393,7 +403,7 @@ This sub-package contains the guest agent. %package seabios Summary: X86 BIOS for QEMU Group: System/Emulators/PC -Version: 1.7.5.1 +Version: 1.8.1 Release: 0 %if 0%{?suse_version} > %{noarch_supported} BuildArch: noarch @@ -407,7 +417,7 @@ is the default BIOS for QEMU. %package vgabios Summary: VGA BIOSes for QEMU Group: System/Emulators/PC -Version: 1.7.5.1 +Version: 1.8.1 Release: 0 %if 0%{?suse_version} > %{noarch_supported} BuildArch: noarch @@ -462,7 +472,7 @@ This package provides a service file for starting and stopping KSM. %endif %prep -%setup -q -n %name-2.2.0 +%setup -q -n %name-2.3.0-rc0 %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 @@ -501,8 +511,16 @@ This package provides a service file for starting and stopping KSM. %patch0036 -p1 %patch0037 -p1 %patch0038 -p1 +%patch0039 -p1 +%patch0040 -p1 +%patch0041 -p1 +%patch0042 -p1 %if %{build_x86_fw_from_source} +pushd roms/seabios +%patch1000 -p1 +popd + # as a safeguard, delete the firmware files that we intend to build for i in %built_firmware_files do diff --git a/qemu.spec.in b/qemu.spec.in index 58bf7b75..004fc703 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -45,8 +45,8 @@ License: BSD-3-Clause and GPL-2.0 and GPL-2.0+ and LGPL-2.1+ and MIT Group: System/Emulators/PC QEMU_VERSION Release: 0 -Source: http://wiki.qemu.org/download/%name-2.2.0.tar.bz2 -Source99: http://wiki.qemu.org/download/%name-2.2.0.tar.bz2.sig +Source: http://wiki.qemu.org/download/%name-2.3.0-rc0.tar.bz2 +Source99: http://wiki.qemu.org/download/%name-2.3.0-rc0.tar.bz2.sig Source1: 80-kvm.rules Source2: qemu-ifup Source3: kvm_stat @@ -56,7 +56,13 @@ Source6: ksm.service Source7: 60-kvm.x86.rules # This patch queue is auto-generated from https://github.com/openSUSE/qemu PATCH_FILES -# Please do not add patches manually here, run update_git.sh. +# Please do not add QEMU patches manually here. +# Run update_git.sh to regenerate this queue. + +# SeaBIOS +%if %{build_x86_fw_from_source} +Patch1000: seabios_128kb.patch +%endif # this is to make lint happy Source300: qemu-rpmlintrc @@ -425,10 +431,14 @@ This package provides a service file for starting and stopping KSM. %endif %prep -%setup -q -n %name-2.2.0 +%setup -q -n %name-2.3.0-rc0 PATCH_EXEC %if %{build_x86_fw_from_source} +pushd roms/seabios +%patch1000 -p1 +popd + # as a safeguard, delete the firmware files that we intend to build for i in %built_firmware_files do diff --git a/seabios_128kb.patch b/seabios_128kb.patch new file mode 100644 index 00000000..ee832405 --- /dev/null +++ b/seabios_128kb.patch @@ -0,0 +1,303 @@ +From 5fff5f1e79d8bc7ef24d1f8ff42c8021215f23a6 Mon Sep 17 00:00:00 2001 +From: Bruce Rogers +Date: Thu, 19 Mar 2015 16:34:31 -0600 +Subject: [PATCH] Eliminate some duplicate string segments to reduce bios image + size + +In some build environments, we are running up against the 128K bios +size limit. This change simply takes larger string segments which are +used in printf style messages and uses a single copy, now referenced +with a %s specifier, resulting in the needed space savings. + +Signed-off-by: Bruce Rogers +--- + src/boot.c | 20 +++++++++++--------- + src/bootsplash.c | 5 +++-- + src/fw/paravirt.c | 8 +++++--- + src/fw/pciinit.c | 19 ++++++++++--------- + src/hw/usb-hub.c | 9 +++++---- + src/hw/usb-msc.c | 6 ++++-- + 6 files changed, 38 insertions(+), 29 deletions(-) + +diff --git a/src/boot.c b/src/boot.c +index d6b1fb7..de37041 100644 +--- a/src/boot.c ++++ b/src/boot.c +@@ -25,6 +25,8 @@ + * Boot priority ordering + ****************************************************************/ + ++static const char *no_boot_dev_str = "No bootable device."; ++static const char *boot_str = "Booting from "; + static char **Bootorder VARVERIFY32INIT; + static int BootorderCount; + +@@ -587,7 +589,7 @@ bcv_prepboot(void) + static void + call_boot_entry(struct segoff_s bootsegip, u8 bootdrv) + { +- dprintf(1, "Booting from %04x:%04x\n", bootsegip.seg, bootsegip.offset); ++ dprintf(1, "%s%04x:%04x\n", boot_str, bootsegip.seg, bootsegip.offset); + struct bregs br; + memset(&br, 0, sizeof(br)); + br.flags = F_IF; +@@ -641,7 +643,7 @@ boot_cdrom(struct drive_s *drive_g) + { + if (! CONFIG_CDROM_BOOT) + return; +- printf("Booting from DVD/CD...\n"); ++ printf("%sDVD/CD...\n", boot_str); + + int status = cdrom_boot(drive_g); + if (status) { +@@ -664,7 +666,7 @@ boot_cbfs(struct cbfs_file *file) + { + if (!CONFIG_COREBOOT_FLASH) + return; +- printf("Booting from CBFS...\n"); ++ printf("%sCBFS...\n", boot_str); + cbfs_run_payload(file); + } + +@@ -672,7 +674,7 @@ boot_cbfs(struct cbfs_file *file) + static void + boot_rom(u32 vector) + { +- printf("Booting from ROM...\n"); ++ printf("%sROM...\n", boot_str); + struct segoff_s so; + so.segoff = vector; + call_boot_entry(so, 0); +@@ -683,10 +685,10 @@ static void + boot_fail(void) + { + if (BootRetryTime == (u32)-1) +- printf("No bootable device.\n"); ++ printf("%s\n", no_boot_dev_str); + else +- printf("No bootable device. Retrying in %d seconds.\n" +- , BootRetryTime/1000); ++ printf("%s Retrying in %d seconds.\n", no_boot_dev_str, ++ BootRetryTime/1000); + // Wait for 'BootRetryTime' milliseconds and then reboot. + u32 end = irqtimer_calc(BootRetryTime); + for (;;) { +@@ -712,11 +714,11 @@ do_boot(int seq_nr) + struct bev_s *ie = &BEV[seq_nr]; + switch (ie->type) { + case IPL_TYPE_FLOPPY: +- printf("Booting from Floppy...\n"); ++ printf("%sFloppy...\n", boot_str); + boot_disk(0x00, CheckFloppySig); + break; + case IPL_TYPE_HARDDISK: +- printf("Booting from Hard Disk...\n"); ++ printf("%sHard Disk...\n", boot_str); + boot_disk(0x80, 1); + break; + case IPL_TYPE_CDROM: +diff --git a/src/bootsplash.c b/src/bootsplash.c +index c572685..e28d264 100644 +--- a/src/bootsplash.c ++++ b/src/bootsplash.c +@@ -16,6 +16,7 @@ + #include "string.h" // memset + #include "util.h" // enable_bootsplash + ++static const char *decode_failed_str = "_decode failed with return code "; + + /**************************************************************** + * Helper functions +@@ -154,7 +155,7 @@ enable_bootsplash(void) + dprintf(5, "Decoding bootsplash.jpg\n"); + ret = jpeg_decode(jpeg, filedata); + if (ret) { +- dprintf(1, "jpeg_decode failed with return code %d...\n", ret); ++ dprintf(1, "jpeg%s%d...\n", decode_failed_str, ret); + goto done; + } + jpeg_get_size(jpeg, &width, &height); +@@ -168,7 +169,7 @@ enable_bootsplash(void) + dprintf(5, "Decoding bootsplash.bmp\n"); + ret = bmp_decode(bmp, filedata, filesize); + if (ret) { +- dprintf(1, "bmp_decode failed with return code %d...\n", ret); ++ dprintf(1, "bmp%s%d...\n", decode_failed_str, ret); + goto done; + } + bmp_get_size(bmp, &width, &height); +diff --git a/src/fw/paravirt.c b/src/fw/paravirt.c +index db22ae8..868435a 100644 +--- a/src/fw/paravirt.c ++++ b/src/fw/paravirt.c +@@ -36,6 +36,8 @@ int PlatformRunningOn VARFSEG; + */ + #define KVM_CPUID_SIGNATURE 0x40000000 + ++static const char *running_on_qemu_str = "Running on QEMU ("; ++ + static void kvm_detect(void) + { + unsigned int eax, ebx, ecx, edx; +@@ -73,13 +75,13 @@ static void qemu_detect(void) + PlatformRunningOn |= PF_QEMU; + switch (d) { + case 0x1237: +- dprintf(1, "Running on QEMU (i440fx)\n"); ++ dprintf(1, "%si440fx)\n", running_on_qemu_str); + break; + case 0x29c0: +- dprintf(1, "Running on QEMU (q35)\n"); ++ dprintf(1, "%sq35)\n", running_on_qemu_str); + break; + default: +- dprintf(1, "Running on QEMU (unknown nb: %04x:%04x)\n", v, d); ++ dprintf(1, "%sunknown nb: %04x:%04x)\n", running_on_qemu_str, v, d); + break; + } + kvm_detect(); +diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c +index ac39d23..63018e4 100644 +--- a/src/fw/pciinit.c ++++ b/src/fw/pciinit.c +@@ -27,6 +27,10 @@ + #define PCI_BRIDGE_MEM_MIN (1<<21) // 2M == hugepage size + #define PCI_BRIDGE_IO_MIN 0x1000 // mandated by pci bridge spec + ++static const char *pri_bus_str = "PCI: primary bus = "; ++static const char *sec_bus_str = "PCI: secondary bus = "; ++static const char *sub_bus_str = "PCI: subordinate bus = "; ++ + static const char *region_type_name[] = { + [ PCI_REGION_TYPE_IO ] = "io", + [ PCI_REGION_TYPE_MEM ] = "mem", +@@ -425,7 +429,6 @@ static void pci_bios_init_platform(void) + } + } + +- + /**************************************************************** + * Bus initialization + ****************************************************************/ +@@ -456,21 +459,20 @@ pci_bios_init_bus_rec(int bus, u8 *pci_bus) + + u8 pribus = pci_config_readb(bdf, PCI_PRIMARY_BUS); + if (pribus != bus) { +- dprintf(1, "PCI: primary bus = 0x%x -> 0x%x\n", pribus, bus); ++ dprintf(1, "%s0x%x -> 0x%x\n", pri_bus_str, pribus, bus); + pci_config_writeb(bdf, PCI_PRIMARY_BUS, bus); + } else { +- dprintf(1, "PCI: primary bus = 0x%x\n", pribus); ++ dprintf(1, "%s0x%x\n", pri_bus_str, pribus); + } + + u8 secbus = pci_config_readb(bdf, PCI_SECONDARY_BUS); + (*pci_bus)++; + if (*pci_bus != secbus) { +- dprintf(1, "PCI: secondary bus = 0x%x -> 0x%x\n", +- secbus, *pci_bus); ++ dprintf(1, "%s0x%x -> 0x%x\n", sec_bus_str, secbus, *pci_bus); + secbus = *pci_bus; + pci_config_writeb(bdf, PCI_SECONDARY_BUS, secbus); + } else { +- dprintf(1, "PCI: secondary bus = 0x%x\n", secbus); ++ dprintf(1, "%s0x%x\n", sec_bus_str, secbus); + } + + /* set to max for access to all subordinate buses. +@@ -481,11 +483,10 @@ pci_bios_init_bus_rec(int bus, u8 *pci_bus) + pci_bios_init_bus_rec(secbus, pci_bus); + + if (subbus != *pci_bus) { +- dprintf(1, "PCI: subordinate bus = 0x%x -> 0x%x\n", +- subbus, *pci_bus); ++ dprintf(1, "%s0x%x -> 0x%x\n", sub_bus_str, subbus, *pci_bus); + subbus = *pci_bus; + } else { +- dprintf(1, "PCI: subordinate bus = 0x%x\n", subbus); ++ dprintf(1, "%s0x%x\n", sub_bus_str, subbus); + } + pci_config_writeb(bdf, PCI_SUBORDINATE_BUS, subbus); + } +diff --git a/src/hw/usb-hub.c b/src/hw/usb-hub.c +index 54e341b..337385d 100644 +--- a/src/hw/usb-hub.c ++++ b/src/hw/usb-hub.c +@@ -11,6 +11,8 @@ + #include "usb-hub.h" // struct usb_hub_descriptor + #include "util.h" // timer_calc + ++static const char *port_hub_fail_str = "Failure on hub port "; ++ + static int + get_hub_desc(struct usb_pipe *pipe, struct usb_hub_descriptor *desc) + { +@@ -82,7 +84,6 @@ get_port_status(struct usbhub_s *hub, int port, struct usb_port_status *sts) + mutex_unlock(&hub->lock); + return ret; + } +- + // Check if device attached to port + static int + usb_hub_detect(struct usbhub_s *hub, u32 port) +@@ -90,7 +91,7 @@ usb_hub_detect(struct usbhub_s *hub, u32 port) + struct usb_port_status sts; + int ret = get_port_status(hub, port, &sts); + if (ret) { +- dprintf(1, "Failure on hub port %d detect\n", port); ++ dprintf(1, "%s%d detect\n", port_hub_fail_str, port); + return -1; + } + return (sts.wPortStatus & USB_PORT_STAT_CONNECTION) ? 1 : 0; +@@ -102,7 +103,7 @@ usb_hub_disconnect(struct usbhub_s *hub, u32 port) + { + int ret = clear_port_feature(hub, port, USB_PORT_FEAT_ENABLE); + if (ret) +- dprintf(1, "Failure on hub port %d disconnect\n", port); ++ dprintf(1, "%s%d disconnect\n", port_hub_fail_str, port); + } + + // Reset device on port +@@ -142,7 +143,7 @@ usb_hub_reset(struct usbhub_s *hub, u32 port) + >> USB_PORT_STAT_SPEED_SHIFT); + + fail: +- dprintf(1, "Failure on hub port %d reset\n", port); ++ dprintf(1, "%s%d reset\n", port_hub_fail_str, port); + usb_hub_disconnect(hub, port); + return -1; + } +diff --git a/src/hw/usb-msc.c b/src/hw/usb-msc.c +index d90319f..9c6b3e2 100644 +--- a/src/hw/usb-msc.c ++++ b/src/hw/usb-msc.c +@@ -50,6 +50,8 @@ struct csw_s { + u8 bCSWStatus; + } PACKED; + ++static const char *cant_config_str = "Unable to configure USB MSC "; ++ + static int + usb_msc_send(struct usbdrive_s *udrive_gf, int dir, void *buf, u32 bytes) + { +@@ -158,7 +160,7 @@ usb_msc_lun_setup(struct usb_pipe *inpipe, struct usb_pipe *outpipe, + int prio = bootprio_find_usb(usbdev, lun); + int ret = scsi_drive_setup(&drive->drive, "USB MSC", prio); + if (ret) { +- dprintf(1, "Unable to configure USB MSC drive.\n"); ++ dprintf(1, "%sdrive.\n", cant_config_str); + free(drive); + return -1; + } +@@ -213,7 +215,7 @@ usb_msc_setup(struct usbdevice_s *usbdev) + + return 0; + fail: +- dprintf(1, "Unable to configure USB MSC device.\n"); ++ dprintf(1, "%sdevice.\n", cant_config_str); + usb_free_pipe(usbdev, inpipe); + usb_free_pipe(usbdev, outpipe); + return -1; +-- +1.9.0 + diff --git a/update_git.sh b/update_git.sh index edcfeffb..f01df131 100644 --- a/update_git.sh +++ b/update_git.sh @@ -11,8 +11,8 @@ GIT_TREE=git://github.com/openSUSE/qemu.git GIT_LOCAL_TREE=~/git/qemu-opensuse -GIT_BRANCH=opensuse-2.2 -GIT_UPSTREAM_TAG=v2.2.0 +GIT_BRANCH=opensuse-2.3 +GIT_UPSTREAM_TAG=v2.3.0-rc0 GIT_DIR=/dev/shm/qemu-factory-git-dir CMP_DIR=/dev/shm/qemu-factory-cmp-dir