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
This commit is contained in:
parent
10d2e18518
commit
87c6328bba
@ -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 <agraf@suse.de>
|
||||
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)
|
||||
|
@ -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 <agraf@suse.de>
|
||||
Date: Thu, 1 Dec 2011 19:00:01 +0100
|
||||
Subject: [PATCH] XXX work around SA_RESTART race with boehm-gc (ARM only)
|
||||
@ -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_<errcode>. */
|
||||
@@ -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);
|
||||
|
@ -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 <uli@suse.de>
|
||||
Date: Tue, 14 Apr 2009 16:18:44 +0200
|
||||
Subject: [PATCH] qemu-0.9.0.cvs-binfmt
|
||||
|
@ -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 <agraf@suse.de>
|
||||
Date: Tue, 14 Apr 2009 16:20:50 +0200
|
||||
Subject: [PATCH] qemu-cvs-alsa_bitfield
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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;
|
||||
};
|
||||
|
||||
|
@ -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 <agraf@suse.de>
|
||||
Date: Tue, 14 Apr 2009 16:24:15 +0200
|
||||
Subject: [PATCH] qemu-cvs-alsa_mmap
|
||||
|
@ -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 <uli@suse.de>
|
||||
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;
|
||||
|
@ -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 <agraf@suse.de>
|
||||
Date: Tue, 14 Apr 2009 16:26:33 +0200
|
||||
Subject: [PATCH] qemu-cvs-ioctl_debug
|
||||
@ -12,10 +12,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
|
||||
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) {
|
||||
|
@ -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 <agraf@suse.de>
|
||||
Date: Tue, 14 Apr 2009 16:27:36 +0200
|
||||
Subject: [PATCH] qemu-cvs-ioctl_nodirection
|
||||
@ -15,10 +15,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
|
||||
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;
|
||||
|
@ -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 <uli@suse.de>
|
||||
Date: Tue, 14 Apr 2009 16:37:42 +0200
|
||||
Subject: [PATCH] block/vmdk: Support creation of SCSI VMDK images in qemu-img
|
||||
@ -21,13 +21,13 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 <afaerber@suse.de>
|
||||
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,$^)
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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,
|
||||
|
@ -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 <agraf@suse.de>
|
||||
Date: Thu, 2 Feb 2012 18:02:33 +0100
|
||||
Subject: [PATCH] linux-user: binfmt: support host binaries
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 <afaerber@suse.de>
|
||||
---
|
||||
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);
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 <agraf@suse.de>
|
||||
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);
|
||||
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 <afaerber@suse.de>
|
||||
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)
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 <afaerber@suse.de>
|
||||
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
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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)
|
||||
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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)
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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;
|
||||
|
||||
|
@ -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?= <afaerber@suse.de>
|
||||
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;
|
||||
|
@ -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?= <afaerber@suse.de>
|
||||
Date: Wed, 29 Aug 2012 20:06:01 +0200
|
||||
Subject: [PATCH] vnc: password-file= and incoming-connections=
|
||||
|
||||
TBD (from SUSE Studio team)
|
||||
---
|
||||
ui/vnc.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 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");
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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) */
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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_<errcode>. */
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 <afaerber@suse.de>
|
||||
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
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 <afaerber@suse.de>
|
||||
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
|
||||
|
@ -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 <agraf@suse.de>
|
||||
Date: Wed, 12 Dec 2012 19:11:30 +0100
|
||||
Subject: [PATCH] Legacy Patch kvm-qemu-preXX-dictzip3.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 <agraf@suse.de>
|
||||
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;
|
||||
}
|
@ -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 <agraf@suse.de>
|
||||
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 <agraf@suse.de>
|
||||
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)
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 {
|
||||
|
@ -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 <agraf@suse.de>
|
||||
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 <agraf@suse.de>
|
||||
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
|
||||
|
@ -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 <brogers@suse.com>
|
||||
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 @@
|
||||
|
@ -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 <k0da@opensuse.org>
|
||||
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 <afaerber@suse.de>
|
||||
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
|
||||
|
@ -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?= <afaerber@suse.de>
|
||||
Date: Thu, 17 Apr 2014 18:39:10 +0200
|
||||
Subject: [PATCH] qtest: Increase socket timeout
|
||||
|
@ -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 <agraf@suse.de>
|
||||
Date: Wed, 14 Jan 2015 01:32:11 +0100
|
||||
Subject: [PATCH] AIO: Reduce number of threads for 32bit hosts
|
||||
|
@ -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 <schwab@suse.de>
|
||||
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 <afaerber@suse.de>
|
||||
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;
|
||||
|
38
0039-ide-fix-cmd_write_pio-when-nsectors.patch
Normal file
38
0039-ide-fix-cmd_write_pio-when-nsectors.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 7d51103f2e1a7ec7fe0623cc115f450d57f442b4 Mon Sep 17 00:00:00 2001
|
||||
From: John Snow <jsnow@redhat.com>
|
||||
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 <jsnow@redhat.com>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
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
|
39
0040-ide-fix-cmd_read_pio-when-nsectors-.patch
Normal file
39
0040-ide-fix-cmd_read_pio-when-nsectors-.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From bac9220185506f9d0c5ad93a23789334898c3860 Mon Sep 17 00:00:00 2001
|
||||
From: John Snow <jsnow@redhat.com>
|
||||
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 <jsnow@redhat.com>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
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)
|
38
0041-ahci-Fix-sglist-offset-manipulation.patch
Normal file
38
0041-ahci-Fix-sglist-offset-manipulation.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From ec2869aba738e3eea46a3202f41f1d5efe38325b Mon Sep 17 00:00:00 2001
|
||||
From: John Snow <jsnow@redhat.com>
|
||||
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 <jsnow@redhat.com>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
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++) {
|
94
0042-ahci-test-improve-rw-buffer-pattern.patch
Normal file
94
0042-ahci-test-improve-rw-buffer-pattern.patch
Normal file
@ -0,0 +1,94 @@
|
||||
From cd75c139869ea1fa98eeaf2d8b7004d8da0e1bbe Mon Sep 17 00:00:00 2001
|
||||
From: John Snow <jsnow@redhat.com>
|
||||
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 <jsnow@redhat.com>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
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);
|
@ -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
|
||||
|
||||
|
@ -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 \
|
||||
|
@ -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
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b68c9b6c7c694f5489b5a6bffe993cd976ffbb78e7d178eb3bc016caf460039c
|
||||
size 24316697
|
Binary file not shown.
3
qemu-2.3.0-rc0.tar.bz2
Normal file
3
qemu-2.3.0-rc0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d386077e7699405eb31e3378d2645d73767d1397800a63c445b7cfc6e4e22614
|
||||
size 24684612
|
BIN
qemu-2.3.0-rc0.tar.bz2.sig
Normal file
BIN
qemu-2.3.0-rc0.tar.bz2.sig
Normal file
Binary file not shown.
@ -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
|
||||
|
||||
|
@ -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 \
|
||||
|
@ -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
|
||||
|
17
qemu.changes
17
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
|
||||
|
||||
|
34
qemu.spec
34
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
|
||||
|
18
qemu.spec.in
18
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
|
||||
|
303
seabios_128kb.patch
Normal file
303
seabios_128kb.patch
Normal file
@ -0,0 +1,303 @@
|
||||
From 5fff5f1e79d8bc7ef24d1f8ff42c8021215f23a6 Mon Sep 17 00:00:00 2001
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
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 <brogers@suse.com>
|
||||
---
|
||||
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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user