Accepting request 383004 from home:olh:qemu
- Update to v2.6.0-rc0: See http://wiki.qemu-project.org/ChangeLog/2.6 * Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.6 * Accept every size in DISCARD request from a guest (bsc#964427) 0039-block-split-large-discard-requests-.patch * Recognize libxl flag to disable flush in block device (bsc#879425) 0040-xen_disk-Add-suse-specific-flush-di.patch * Use correct flag for crypto tests 0041-tests-Use-correct-config-param-for-.patch * Fix build on powerpc: 0042-build-link-with-libatomic-on-powerp.patch * Patches dropped (upstreamed): seabios_checkrom_typo.patch seabios_avoid_smbios_signature_string.patch OBS-URL: https://build.opensuse.org/request/show/383004 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=289
This commit is contained in:
parent
e3ed4b4b7f
commit
7adb207e17
@ -1,4 +1,4 @@
|
||||
From 8aa30747a59c1beab3e56a314e1963357baeb99f Mon Sep 17 00:00:00 2001
|
||||
From 7261f498a3b0b99180d09faaf73dc3af06d18fbe 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,11 +8,11 @@ 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 9d62e02..1a8a332 100644
|
||||
index 96e86c0..d422aeb 100644
|
||||
--- a/linux-user/signal.c
|
||||
+++ b/linux-user/signal.c
|
||||
@@ -447,6 +447,10 @@ static void QEMU_NORETURN force_sig(int target_sig)
|
||||
host_sig = target_to_host_signal(target_sig);
|
||||
@@ -443,6 +443,10 @@ static void QEMU_NORETURN force_sig(int target_sig)
|
||||
trace_user_force_sig(env, target_sig, host_sig);
|
||||
gdb_signalled(env, target_sig);
|
||||
|
||||
+ if (target_sig == 6) {
|
||||
@ -22,7 +22,7 @@ index 9d62e02..1a8a332 100644
|
||||
/* dump core if supported by target binary format */
|
||||
if (core_dump_signal(target_sig) && (ts->bprm->core_dump != NULL)) {
|
||||
stop_all_tasks();
|
||||
@@ -464,6 +468,8 @@ static void QEMU_NORETURN force_sig(int target_sig)
|
||||
@@ -460,6 +464,8 @@ static void QEMU_NORETURN force_sig(int target_sig)
|
||||
target_sig, strsignal(host_sig), "core dumped" );
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c3a774e193db19f48a4a471814360123150a3526 Mon Sep 17 00:00:00 2001
|
||||
From fb897f92be5a2b144fe4f3f7f2ddb1386dd3a677 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 8acfe0f..6379e03 100644
|
||||
index b432bf2..119331f 100644
|
||||
--- a/linux-user/main.c
|
||||
+++ b/linux-user/main.c
|
||||
@@ -809,15 +809,22 @@ void cpu_loop(CPUARMState *env)
|
||||
@@ -853,15 +853,22 @@ void cpu_loop(CPUARMState *env)
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
@ -49,10 +49,10 @@ index 8acfe0f..6379e03 100644
|
||||
} else {
|
||||
goto error;
|
||||
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
|
||||
index bd90cc3..ea9c98d 100644
|
||||
index 26b0ba2..b55a9d2 100644
|
||||
--- a/linux-user/qemu.h
|
||||
+++ b/linux-user/qemu.h
|
||||
@@ -133,6 +133,8 @@ typedef struct TaskState {
|
||||
@@ -130,6 +130,8 @@ typedef struct TaskState {
|
||||
struct sigqueue sigqueue_table[MAX_SIGQUEUE_SIZE]; /* siginfo queue */
|
||||
struct sigqueue *first_free; /* first free siginfo queue entry */
|
||||
int signal_pending; /* non zero if a signal may be pending */
|
||||
@ -61,7 +61,7 @@ index bd90cc3..ea9c98d 100644
|
||||
} __attribute__((aligned(16))) TaskState;
|
||||
|
||||
extern char *exec_path;
|
||||
@@ -191,6 +193,7 @@ int get_osversion(void);
|
||||
@@ -188,6 +190,7 @@ int get_osversion(void);
|
||||
void init_qemu_uname_release(void);
|
||||
void fork_start(void);
|
||||
void fork_end(int child);
|
||||
@ -70,18 +70,18 @@ index bd90cc3..ea9c98d 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 1a8a332..2c9b0da 100644
|
||||
index d422aeb..eab88a9 100644
|
||||
--- a/linux-user/signal.c
|
||||
+++ b/linux-user/signal.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <errno.h>
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include <sys/ucontext.h>
|
||||
#include <sys/resource.h>
|
||||
+#include <sched.h>
|
||||
|
||||
#include "qemu.h"
|
||||
#include "qemu-common.h"
|
||||
@@ -570,6 +571,11 @@ int queue_signal(CPUArchState *env, int sig, target_siginfo_t *info)
|
||||
@@ -563,6 +564,11 @@ int queue_signal(CPUArchState *env, int sig, target_siginfo_t *info)
|
||||
k->pending = 1;
|
||||
/* signal that a new signal is pending */
|
||||
ts->signal_pending = 1;
|
||||
@ -93,7 +93,7 @@ index 1a8a332..2c9b0da 100644
|
||||
return 1; /* indicates that the signal was queued */
|
||||
}
|
||||
}
|
||||
@@ -716,8 +722,24 @@ int do_sigaction(int sig, const struct target_sigaction *act,
|
||||
@@ -703,8 +709,24 @@ int do_sigaction(int sig, const struct target_sigaction *act,
|
||||
if (host_sig != SIGSEGV && host_sig != SIGBUS) {
|
||||
sigfillset(&act1.sa_mask);
|
||||
act1.sa_flags = SA_SIGINFO;
|
||||
@ -119,10 +119,10 @@ index 1a8a332..2c9b0da 100644
|
||||
ignore state to avoid getting unexpected interrupted
|
||||
syscalls */
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index 6c64ba6..ce8eba3 100644
|
||||
index 032d338..fe0dbd6 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -5663,6 +5663,87 @@ static target_timer_t get_timer_id(abi_long arg)
|
||||
@@ -5847,6 +5847,87 @@ static target_timer_t get_timer_id(abi_long arg)
|
||||
return timerid;
|
||||
}
|
||||
|
||||
@ -210,7 +210,7 @@ index 6c64ba6..ce8eba3 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>. */
|
||||
@@ -5676,6 +5757,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
@@ -5860,6 +5941,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 6c64ba6..ce8eba3 100644
|
||||
|
||||
#ifdef DEBUG
|
||||
gemu_log("syscall %d", num);
|
||||
@@ -8998,7 +9085,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
@@ -9211,7 +9298,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 6c64ba6..ce8eba3 100644
|
||||
}
|
||||
|
||||
switch(arg2) {
|
||||
@@ -10029,6 +10116,7 @@ fail:
|
||||
@@ -10255,6 +10342,7 @@ fail:
|
||||
#endif
|
||||
if(do_strace)
|
||||
print_syscall_ret(num, ret);
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 80376f4f9c820a5d1e9abe4e53f97bc7e0d349f4 Mon Sep 17 00:00:00 2001
|
||||
From 65b3bf4a8d92ecb5f0ab4e89d20d8dd0a08d433a 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 d0b55bb89eeaffae5f5d0563cf53801943fcefb7 Mon Sep 17 00:00:00 2001
|
||||
From d2c9637b77ebbc03478f6d1a911bc01561161daa 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
|
||||
@ -13,10 +13,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
|
||||
2 files changed, 24 insertions(+)
|
||||
|
||||
diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h
|
||||
index 3b67462..f26c7f4 100644
|
||||
index ad1d602..4e082a7 100644
|
||||
--- a/include/exec/user/thunk.h
|
||||
+++ b/include/exec/user/thunk.h
|
||||
@@ -38,6 +38,7 @@ typedef enum argtype {
|
||||
@@ -37,6 +37,7 @@ typedef enum argtype {
|
||||
TYPE_ARRAY,
|
||||
TYPE_STRUCT,
|
||||
TYPE_OLDDEVT,
|
||||
@ -24,7 +24,7 @@ index 3b67462..f26c7f4 100644
|
||||
} argtype;
|
||||
|
||||
#define MK_PTR(type) TYPE_PTR, type
|
||||
@@ -91,6 +92,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host)
|
||||
@@ -90,6 +91,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host)
|
||||
case TYPE_SHORT:
|
||||
return 2;
|
||||
case TYPE_INT:
|
||||
@ -32,7 +32,7 @@ index 3b67462..f26c7f4 100644
|
||||
return 4;
|
||||
case TYPE_LONGLONG:
|
||||
case TYPE_ULONGLONG:
|
||||
@@ -153,6 +155,7 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host)
|
||||
@@ -152,6 +154,7 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host)
|
||||
case TYPE_SHORT:
|
||||
return 2;
|
||||
case TYPE_INT:
|
||||
@ -41,10 +41,10 @@ index 3b67462..f26c7f4 100644
|
||||
case TYPE_LONGLONG:
|
||||
case TYPE_ULONGLONG:
|
||||
diff --git a/thunk.c b/thunk.c
|
||||
index f501fd7..b711860 100644
|
||||
index f057d86..6db7874 100644
|
||||
--- a/thunk.c
|
||||
+++ b/thunk.c
|
||||
@@ -39,6 +39,7 @@ static inline const argtype *thunk_type_next(const argtype *type_ptr)
|
||||
@@ -37,6 +37,7 @@ static inline const argtype *thunk_type_next(const argtype *type_ptr)
|
||||
case TYPE_CHAR:
|
||||
case TYPE_SHORT:
|
||||
case TYPE_INT:
|
||||
@ -52,7 +52,7 @@ index f501fd7..b711860 100644
|
||||
case TYPE_LONGLONG:
|
||||
case TYPE_ULONGLONG:
|
||||
case TYPE_LONG:
|
||||
@@ -141,6 +142,26 @@ const argtype *thunk_convert(void *dst, const void *src,
|
||||
@@ -139,6 +140,26 @@ const argtype *thunk_convert(void *dst, const void *src,
|
||||
case TYPE_INT:
|
||||
*(uint32_t *)dst = tswap32(*(uint32_t *)src);
|
||||
break;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a03418dfe9a1151a5863f84c71ea576d87136cef Mon Sep 17 00:00:00 2001
|
||||
From 7315601fc9b07a4cbbf3126fb846eb6796b79f11 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 f996acf..c2baa9e 100644
|
||||
index 9e2b3c2..b090cdb 100644
|
||||
--- a/linux-user/syscall_defs.h
|
||||
+++ b/linux-user/syscall_defs.h
|
||||
@@ -2540,6 +2540,8 @@ struct target_ucred {
|
||||
@@ -2545,6 +2545,8 @@ struct target_ucred {
|
||||
uint32_t gid;
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9578bb8be38338db9e59ca5085970e23e49df081 Mon Sep 17 00:00:00 2001
|
||||
From 31795a01d7db34560e09b67723f66c9b56e4bfe0 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
|
||||
@ -12,10 +12,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
|
||||
index 7b459d5..9f164de 100644
|
||||
index 3519147..671889b 100644
|
||||
--- a/linux-user/mmap.c
|
||||
+++ b/linux-user/mmap.c
|
||||
@@ -363,6 +363,9 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
|
||||
@@ -358,6 +358,9 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ index 7b459d5..9f164de 100644
|
||||
/* NOTE: all the constants are the HOST ones */
|
||||
abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
|
||||
int flags, int fd, abi_ulong offset)
|
||||
@@ -397,6 +400,17 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
|
||||
@@ -392,6 +395,17 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 41d4cd0e804058e7cb43184144c602ac94118ac5 Mon Sep 17 00:00:00 2001
|
||||
From 6851a047d5ee3598e23add8661f6a72911048279 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 ce8eba3..7a6bd6c 100644
|
||||
index fe0dbd6..b5e6598 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -6870,6 +6870,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
@@ -7072,6 +7072,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 a8de3056b883fc9a2dbade321fa56cd7053aba8e Mon Sep 17 00:00:00 2001
|
||||
From eda771ddbebc65e250ea6ee55915b57f8a987a1d 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 7a6bd6c..c744746 100644
|
||||
index b5e6598..7a589cb 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -3922,7 +3922,12 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
|
||||
@@ -4022,7 +4022,12 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
|
||||
ie = ioctl_entries;
|
||||
for(;;) {
|
||||
if (ie->target_cmd == 0) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 93e7c43e8820bfcfa65fd4b2283fde1070056f55 Mon Sep 17 00:00:00 2001
|
||||
From 2139ef68f00f2f273ab464aacf8108a857adea1d 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 c744746..6cdbd86 100644
|
||||
index 7a589cb..1afd3b9 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -3955,6 +3955,11 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
|
||||
@@ -4055,6 +4055,11 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
|
||||
arg_type++;
|
||||
target_size = thunk_type_size(arg_type, 0);
|
||||
switch(ie->access) {
|
||||
@ -30,7 +30,7 @@ index c744746..6cdbd86 100644
|
||||
case IOC_R:
|
||||
ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp));
|
||||
if (!is_error(ret)) {
|
||||
@@ -3973,6 +3978,7 @@ static abi_long do_ioctl(int fd, int cmd, abi_long arg)
|
||||
@@ -4073,6 +4078,7 @@ static abi_long do_ioctl(int fd, int 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 0c87155ccca56143a74019bf10233837920a6467 Mon Sep 17 00:00:00 2001
|
||||
From 32bb17da57ea63a355a777339b227b4da7f09825 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,10 +21,10 @@ 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 3a7324b..ae06afb 100644
|
||||
index d36eb75..be962ec 100644
|
||||
--- a/block.c
|
||||
+++ b/block.c
|
||||
@@ -3682,6 +3682,9 @@ void bdrv_img_create(const char *filename, const char *fmt,
|
||||
@@ -3581,6 +3581,9 @@ void bdrv_img_create(const char *filename, const char *fmt,
|
||||
if (!quiet) {
|
||||
printf("Formatting '%s', fmt=%s ", filename, fmt);
|
||||
qemu_opts_print(opts, " ");
|
||||
@ -35,10 +35,10 @@ index 3a7324b..ae06afb 100644
|
||||
}
|
||||
|
||||
diff --git a/block/vmdk.c b/block/vmdk.c
|
||||
index 6f819e4..9944b17 100644
|
||||
index 45f9d3c..f5c68e0 100644
|
||||
--- a/block/vmdk.c
|
||||
+++ b/block/vmdk.c
|
||||
@@ -1852,9 +1852,12 @@ static int vmdk_create(const char *filename, QemuOpts *opts, Error **errp)
|
||||
@@ -1885,9 +1885,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 6f819e4..9944b17 100644
|
||||
} else if (strcmp(adapter_type, "ide") &&
|
||||
strcmp(adapter_type, "buslogic") &&
|
||||
strcmp(adapter_type, "lsilogic") &&
|
||||
@@ -2270,6 +2273,11 @@ static QemuOptsList vmdk_create_opts = {
|
||||
@@ -2310,6 +2313,11 @@ static QemuOptsList vmdk_create_opts = {
|
||||
.help = "Enable efficient zero writes "
|
||||
"using the zeroed-grain GTE feature"
|
||||
},
|
||||
@ -65,7 +65,7 @@ index 6f819e4..9944b17 100644
|
||||
}
|
||||
};
|
||||
diff --git a/include/block/block_int.h b/include/block/block_int.h
|
||||
index 4012e36..5dcdca5 100644
|
||||
index 10d8759..7c0b99c 100644
|
||||
--- a/include/block/block_int.h
|
||||
+++ b/include/block/block_int.h
|
||||
@@ -40,10 +40,12 @@
|
||||
@ -82,10 +82,10 @@ index 4012e36..5dcdca5 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 033011c..02e2dab 100644
|
||||
index 06264d9..6ab8eaf 100644
|
||||
--- a/qemu-img.c
|
||||
+++ b/qemu-img.c
|
||||
@@ -1805,6 +1805,13 @@ static int img_convert(int argc, char **argv)
|
||||
@@ -2033,6 +2033,13 @@ static int img_convert(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c5622c7c69f393bc1f04f5855fa5ef79d4a2083d Mon Sep 17 00:00:00 2001
|
||||
From 825a67827cc7546b538de736ccb349926803eb0a 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 962d004..46f5178 100644
|
||||
index 34ddb7e..cba1078 100644
|
||||
--- a/Makefile.target
|
||||
+++ b/Makefile.target
|
||||
@@ -36,6 +36,10 @@ endif
|
||||
@ -72,7 +72,7 @@ index 962d004..46f5178 100644
|
||||
all-obj-y := $(obj-y)
|
||||
|
||||
target-obj-y :=
|
||||
@@ -196,6 +206,9 @@ ifdef CONFIG_DARWIN
|
||||
@@ -198,6 +208,9 @@ ifdef CONFIG_DARWIN
|
||||
$(call quiet-command,SetFile -a C $@," SETFILE $(TARGET_DIR)$@")
|
||||
endif
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 4b4b134b43b0efae453be44dafe1459218ef176e Mon Sep 17 00:00:00 2001
|
||||
From bf5f6764c515fa8bf60937ef3db0a550c4c622ba 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,20 +13,20 @@ 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 0bf0a6e..79c3983 100644
|
||||
index f46e596..fc2073b 100644
|
||||
--- a/exec.c
|
||||
+++ b/exec.c
|
||||
@@ -1229,11 +1229,13 @@ static void *file_ram_alloc(RAMBlock *block,
|
||||
goto error;
|
||||
}
|
||||
@@ -1242,11 +1242,13 @@ static void *file_ram_alloc(RAMBlock *block,
|
||||
int fd = -1;
|
||||
int64_t page_size;
|
||||
|
||||
+#ifndef TARGET_PPC
|
||||
if (kvm_enabled() && !kvm_has_sync_mmu()) {
|
||||
error_setg(errp,
|
||||
"host lacks kvm mmu notifiers, -mem-path unsupported");
|
||||
goto error;
|
||||
return NULL;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (!stat(path, &st) && S_ISDIR(st.st_mode)) {
|
||||
/* Make name safe to use with mkstemp by replacing '/' with '_'. */
|
||||
for (;;) {
|
||||
fd = open(path, O_RDWR);
|
||||
|
@ -1,4 +1,4 @@
|
||||
From cce489197692907986c6fec5c089daf57d46b58b Mon Sep 17 00:00:00 2001
|
||||
From ea757d5a85a7e218d34f95f21923dfa979d52fa2 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
|
||||
@ -26,10 +26,10 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/user-exec.c b/user-exec.c
|
||||
index 8ad89a4..02c5c3b 100644
|
||||
index d8d597b..f8b7752 100644
|
||||
--- a/user-exec.c
|
||||
+++ b/user-exec.c
|
||||
@@ -95,6 +95,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
|
||||
@@ -94,6 +94,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
|
||||
printf("qemu: SIGSEGV pc=0x%08lx address=%08lx w=%d oldset=0x%08lx\n",
|
||||
pc, address, is_write, *(unsigned long *)old_set);
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8cb8d78c1f37f758d87e8afa64dd6884f8f4af65 Mon Sep 17 00:00:00 2001
|
||||
From 113df7dc50d8b973347bf1b1c38437b455f3d431 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
|
||||
@ -12,7 +12,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c
|
||||
index cd1f513..c755edc 100644
|
||||
index cd1f513..458f136 100644
|
||||
--- a/linux-user/binfmt.c
|
||||
+++ b/linux-user/binfmt.c
|
||||
@@ -5,6 +5,9 @@
|
||||
@ -41,7 +41,7 @@ index cd1f513..c755edc 100644
|
||||
+ }
|
||||
+ guestarch++;
|
||||
+ r = asprintf(&hostbin, "/emul/" ARCH_NAME "-for-%s/%s", guestarch, argv[1]);
|
||||
+ if (!access(hostbin, X_OK) && (r > 0)) {
|
||||
+ if ((r > 0) && !access(hostbin, X_OK)) {
|
||||
+ /*
|
||||
+ * We found a host binary replacement for the non-host binary. Let's
|
||||
+ * use that instead!
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c133a037638e8831f61352311a5acbd6241f184b Mon Sep 17 00:00:00 2001
|
||||
From 492281e8992a45e83c58f65dc977415b547e5898 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 6cdbd86..55dfcf9 100644
|
||||
index 1afd3b9..32f7290 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -3899,6 +3899,13 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp,
|
||||
@@ -3999,6 +3999,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 6cdbd86..55dfcf9 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 c2baa9e..4f966b4 100644
|
||||
index b090cdb..f820b0b 100644
|
||||
--- a/linux-user/syscall_defs.h
|
||||
+++ b/linux-user/syscall_defs.h
|
||||
@@ -1085,6 +1085,7 @@ struct target_pollfd {
|
||||
@@ -1087,6 +1087,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 75fce0091f944eeda3edc005be834f26351cd61f Mon Sep 17 00:00:00 2001
|
||||
From 35d1d48a4dd871b0c77c785f7ccb6e8c5e7f6de8 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
|
||||
@ -21,10 +21,10 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
3 files changed, 39 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
|
||||
index 9f164de..691e63a 100644
|
||||
index 671889b..b85905c 100644
|
||||
--- a/linux-user/mmap.c
|
||||
+++ b/linux-user/mmap.c
|
||||
@@ -30,6 +30,7 @@
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "qemu.h"
|
||||
#include "qemu-common.h"
|
||||
@ -32,7 +32,7 @@ index 9f164de..691e63a 100644
|
||||
#include "translate-all.h"
|
||||
|
||||
//#define DEBUG_MMAP
|
||||
@@ -41,6 +42,7 @@ void mmap_lock(void)
|
||||
@@ -34,6 +35,7 @@ void mmap_lock(void)
|
||||
{
|
||||
if (mmap_lock_count++ == 0) {
|
||||
pthread_mutex_lock(&mmap_mutex);
|
||||
@ -40,7 +40,7 @@ index 9f164de..691e63a 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +50,7 @@ void mmap_unlock(void)
|
||||
@@ -41,6 +43,7 @@ void mmap_unlock(void)
|
||||
{
|
||||
if (--mmap_lock_count == 0) {
|
||||
pthread_mutex_unlock(&mmap_mutex);
|
||||
@ -49,11 +49,11 @@ index 9f164de..691e63a 100644
|
||||
}
|
||||
|
||||
diff --git a/tcg/tcg.c b/tcg/tcg.c
|
||||
index a163541..da174b9 100644
|
||||
index b46bf1a..aed34d1 100644
|
||||
--- a/tcg/tcg.c
|
||||
+++ b/tcg/tcg.c
|
||||
@@ -39,6 +39,8 @@
|
||||
#include "qemu-common.h"
|
||||
#include "qemu/cutils.h"
|
||||
#include "qemu/host-utils.h"
|
||||
#include "qemu/timer.h"
|
||||
+#include "config-host.h"
|
||||
@ -61,7 +61,7 @@ index a163541..da174b9 100644
|
||||
|
||||
/* Note: the long term plan is to reduce the dependencies on the QEMU
|
||||
CPU definitions. Currently they are used for qemu_ld/st
|
||||
@@ -117,6 +119,29 @@ static void tcg_out_tb_finalize(TCGContext *s);
|
||||
@@ -119,6 +121,29 @@ static bool tcg_out_tb_finalize(TCGContext *s);
|
||||
static TCGRegSet tcg_target_available_regs[2];
|
||||
static TCGRegSet tcg_target_call_clobber_regs;
|
||||
|
||||
@ -91,7 +91,7 @@ index a163541..da174b9 100644
|
||||
#if TCG_TARGET_INSN_UNIT_SIZE == 1
|
||||
static __attribute__((unused)) inline void tcg_out8(TCGContext *s, uint8_t v)
|
||||
{
|
||||
@@ -327,7 +352,8 @@ void tcg_context_init(TCGContext *s)
|
||||
@@ -331,7 +356,8 @@ void tcg_context_init(TCGContext *s)
|
||||
|
||||
memset(s, 0, sizeof(*s));
|
||||
s->nb_globals = 0;
|
||||
@ -101,7 +101,7 @@ index a163541..da174b9 100644
|
||||
/* Count total number of arguments and allocate the corresponding
|
||||
space */
|
||||
total_args = 0;
|
||||
@@ -2345,6 +2371,7 @@ int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf)
|
||||
@@ -2358,6 +2384,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
|
||||
qemu_log("\n");
|
||||
}
|
||||
#endif
|
||||
@ -109,7 +109,7 @@ index a163541..da174b9 100644
|
||||
|
||||
#ifdef CONFIG_PROFILER
|
||||
s->opt_time -= profile_getclock();
|
||||
@@ -2448,6 +2475,7 @@ int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf)
|
||||
@@ -2462,6 +2489,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
|
||||
the buffer completely. Thus we can test for overflow after
|
||||
generating code without having to check during generation. */
|
||||
if (unlikely((void *)s->code_ptr > s->code_gen_highwater)) {
|
||||
@ -117,7 +117,7 @@ index a163541..da174b9 100644
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -2459,6 +2487,7 @@ int tcg_gen_code(TCGContext *s, tcg_insn_unit *gen_code_buf)
|
||||
@@ -2475,6 +2503,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
|
||||
|
||||
/* flush instruction cache */
|
||||
flush_icache_range((uintptr_t)s->code_buf, (uintptr_t)s->code_ptr);
|
||||
@ -126,7 +126,7 @@ index a163541..da174b9 100644
|
||||
return tcg_current_code_size(s);
|
||||
}
|
||||
diff --git a/tcg/tcg.h b/tcg/tcg.h
|
||||
index a696922..da22788 100644
|
||||
index 40c8fbe..6b826af2 100644
|
||||
--- a/tcg/tcg.h
|
||||
+++ b/tcg/tcg.h
|
||||
@@ -27,6 +27,7 @@
|
||||
@ -137,7 +137,7 @@ index a696922..da22788 100644
|
||||
#include "tcg-target.h"
|
||||
|
||||
#define CPU_TEMP_BUF_NLONGS 128
|
||||
@@ -581,6 +582,8 @@ struct TCGContext {
|
||||
@@ -591,6 +592,8 @@ struct TCGContext {
|
||||
|
||||
uint16_t gen_insn_end_off[TCG_MAX_INSNS];
|
||||
target_ulong gen_insn_data[TCG_MAX_INSNS][TARGET_INSN_START_WORDS];
|
||||
@ -146,7 +146,7 @@ index a696922..da22788 100644
|
||||
};
|
||||
|
||||
extern TCGContext tcg_ctx;
|
||||
@@ -771,6 +774,9 @@ void tcg_gen_callN(TCGContext *s, void *func,
|
||||
@@ -798,6 +801,9 @@ void tcg_gen_callN(TCGContext *s, void *func,
|
||||
void tcg_op_remove(TCGContext *s, TCGOp *op);
|
||||
void tcg_optimize(TCGContext *s);
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e5315d304cfd3d5398576a5c6f3fed541b775bc8 Mon Sep 17 00:00:00 2001
|
||||
From 259ab3bbe5c7cb51258ab1a4f7d1e1a8bbd4678e 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 55dfcf9..aa21cb6 100644
|
||||
index 32f7290..780f760 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -4604,6 +4604,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp,
|
||||
@@ -4704,6 +4704,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 0ca59d2290fa0a06cf51a159549461ab0b71bf5e Mon Sep 17 00:00:00 2001
|
||||
From 88a56d7effef51c4f98fa0be1dd0f98ffe59c42f 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
|
||||
@ -15,10 +15,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 042a857..8d0d1a6 100644
|
||||
index b4df1ec..747ebd0 100644
|
||||
--- a/translate-all.c
|
||||
+++ b/translate-all.c
|
||||
@@ -767,17 +767,21 @@ static TranslationBlock *tb_alloc(target_ulong pc)
|
||||
@@ -761,17 +761,21 @@ static TranslationBlock *tb_alloc(target_ulong pc)
|
||||
{
|
||||
TranslationBlock *tb;
|
||||
|
||||
@ -40,7 +40,7 @@ index 042a857..8d0d1a6 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. */
|
||||
@@ -786,6 +790,7 @@ void tb_free(TranslationBlock *tb)
|
||||
@@ -780,6 +784,7 @@ void tb_free(TranslationBlock *tb)
|
||||
tcg_ctx.code_gen_ptr = tb->tc_ptr;
|
||||
tcg_ctx.tb_ctx.nb_tbs--;
|
||||
}
|
||||
@ -48,7 +48,7 @@ index 042a857..8d0d1a6 100644
|
||||
}
|
||||
|
||||
static inline void invalidate_page_bitmap(PageDesc *p)
|
||||
@@ -839,6 +844,7 @@ void tb_flush(CPUState *cpu)
|
||||
@@ -833,6 +838,7 @@ void tb_flush(CPUState *cpu)
|
||||
((unsigned long)(tcg_ctx.code_gen_ptr - tcg_ctx.code_gen_buffer)) /
|
||||
tcg_ctx.tb_ctx.nb_tbs : 0);
|
||||
#endif
|
||||
@ -56,7 +56,7 @@ index 042a857..8d0d1a6 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");
|
||||
@@ -856,6 +862,7 @@ void tb_flush(CPUState *cpu)
|
||||
@@ -850,6 +856,7 @@ void tb_flush(CPUState *cpu)
|
||||
/* XXX: flush processor icache at this point if cache flush is
|
||||
expensive */
|
||||
tcg_ctx.tb_ctx.tb_flush_count++;
|
||||
@ -64,7 +64,7 @@ index 042a857..8d0d1a6 100644
|
||||
}
|
||||
|
||||
#ifdef DEBUG_TB_CHECK
|
||||
@@ -1212,8 +1219,10 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
|
||||
@@ -1207,8 +1214,10 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
|
||||
int current_flags = 0;
|
||||
#endif /* TARGET_HAS_PRECISE_SMC */
|
||||
|
||||
@ -75,7 +75,7 @@ index 042a857..8d0d1a6 100644
|
||||
return;
|
||||
}
|
||||
#if defined(TARGET_HAS_PRECISE_SMC)
|
||||
@@ -1298,6 +1307,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
|
||||
@@ -1293,6 +1302,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
|
||||
cpu_resume_from_signal(cpu, NULL);
|
||||
}
|
||||
#endif
|
||||
@ -83,7 +83,7 @@ index 042a857..8d0d1a6 100644
|
||||
}
|
||||
|
||||
/* len must be <= 8 and start must be a multiple of len */
|
||||
@@ -1515,13 +1525,16 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
|
||||
@@ -1510,13 +1520,16 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
|
||||
{
|
||||
int m_min, m_max, m;
|
||||
uintptr_t v;
|
||||
@ -101,7 +101,7 @@ index 042a857..8d0d1a6 100644
|
||||
return NULL;
|
||||
}
|
||||
/* binary search (cf Knuth) */
|
||||
@@ -1532,6 +1545,7 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
|
||||
@@ -1527,6 +1540,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) {
|
||||
@ -109,7 +109,7 @@ index 042a857..8d0d1a6 100644
|
||||
return tb;
|
||||
} else if (tc_ptr < v) {
|
||||
m_max = m - 1;
|
||||
@@ -1539,7 +1553,9 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
|
||||
@@ -1534,7 +1548,9 @@ static TranslationBlock *tb_find_pc(uintptr_t tc_ptr)
|
||||
m_min = m + 1;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6c8981399b1933011bb178f91d0bf91907d0ab8a Mon Sep 17 00:00:00 2001
|
||||
From 5f725ce31e36fe7fdef6cfb2b10418513225acbb 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 aa21cb6..8995968 100644
|
||||
index 780f760..7350980 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -5513,6 +5513,25 @@ static int open_self_stat(void *cpu_env, int fd)
|
||||
@@ -5697,6 +5697,25 @@ static int open_self_stat(void *cpu_env, int fd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ index aa21cb6..8995968 100644
|
||||
static int open_self_auxv(void *cpu_env, int fd)
|
||||
{
|
||||
CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env);
|
||||
@@ -5627,6 +5646,7 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags,
|
||||
@@ -5811,6 +5830,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 58cee188a6c2a532d7a34494393969b364d6d3e8 Mon Sep 17 00:00:00 2001
|
||||
From e5d9e56c734de021526273921f9ce7ba5b8a8b0a 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 4f966b4..817defd 100644
|
||||
index f820b0b..5152e89 100644
|
||||
--- a/linux-user/syscall_defs.h
|
||||
+++ b/linux-user/syscall_defs.h
|
||||
@@ -2455,6 +2455,8 @@ struct target_f_owner_ex {
|
||||
@@ -2457,6 +2457,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 c0a3dcdbf263dc193d4337056c3f3a157f8b7d33 Mon Sep 17 00:00:00 2001
|
||||
From cf06139ea39a52419e4a5c51b89b33a3d0f2036d 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 817defd..367eac1 100644
|
||||
index 5152e89..77be181 100644
|
||||
--- a/linux-user/syscall_defs.h
|
||||
+++ b/linux-user/syscall_defs.h
|
||||
@@ -2456,6 +2456,7 @@ struct target_f_owner_ex {
|
||||
@@ -2458,6 +2458,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 588f5e97ffbb3e072053fc5f39eb0411663800c6 Mon Sep 17 00:00:00 2001
|
||||
From 6b90b44583771ab6822240baf3e1d3830490cbd2 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 8995968..f7e57a6 100644
|
||||
index 7350980..90b1698 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -3394,6 +3394,11 @@ static abi_long do_ioctl_fs_ioc_fiemap(const IOCTLEntry *ie, uint8_t *buf_temp,
|
||||
@@ -3494,6 +3494,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 0f901ac5dba327c1c988bf7eb7b30bf002446bd9 Mon Sep 17 00:00:00 2001
|
||||
From 12cbdd512787707b791787b93f5c5af677d9b571 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
|
||||
Date: Wed, 29 Aug 2012 18:42:56 +0200
|
||||
Subject: [PATCH] slirp: -nooutgoing
|
||||
@ -7,15 +7,15 @@ TBD (from SUSE Studio team)
|
||||
---
|
||||
qemu-options.hx | 10 ++++++++++
|
||||
slirp/socket.c | 8 ++++++++
|
||||
slirp/tcp_subr.c | 13 +++++++++++++
|
||||
slirp/tcp_subr.c | 12 ++++++++++++
|
||||
vl.c | 9 +++++++++
|
||||
4 files changed, 40 insertions(+)
|
||||
4 files changed, 39 insertions(+)
|
||||
|
||||
diff --git a/qemu-options.hx b/qemu-options.hx
|
||||
index 0eea4ee..32a68e4 100644
|
||||
index a770086..df60351 100644
|
||||
--- a/qemu-options.hx
|
||||
+++ b/qemu-options.hx
|
||||
@@ -2949,6 +2949,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
|
||||
@@ -3084,6 +3084,16 @@ Store the QEMU process PID in @var{file}. It is useful if you launch QEMU
|
||||
from a script.
|
||||
ETEXI
|
||||
|
||||
@ -33,10 +33,10 @@ index 0eea4ee..32a68e4 100644
|
||||
"-singlestep always run in singlestep mode\n", QEMU_ARCH_ALL)
|
||||
STEXI
|
||||
diff --git a/slirp/socket.c b/slirp/socket.c
|
||||
index 1673e3a..a177ab0 100644
|
||||
index b836c42..13ec0c0 100644
|
||||
--- a/slirp/socket.c
|
||||
+++ b/slirp/socket.c
|
||||
@@ -532,6 +532,8 @@ sorecvfrom(struct socket *so)
|
||||
@@ -588,6 +588,8 @@ sorecvfrom(struct socket *so)
|
||||
} /* if ping packet */
|
||||
}
|
||||
|
||||
@ -45,34 +45,33 @@ index 1673e3a..a177ab0 100644
|
||||
/*
|
||||
* sendto() a socket
|
||||
*/
|
||||
@@ -562,6 +564,12 @@ sosendto(struct socket *so, struct mbuf *m)
|
||||
|
||||
DEBUG_MISC((dfd, " sendto()ing, addr.sin_port=%d, addr.sin_addr.s_addr=%.16s\n", ntohs(addr.sin_port), inet_ntoa(addr.sin_addr)));
|
||||
@@ -605,6 +607,12 @@ sosendto(struct socket *so, struct mbuf *m)
|
||||
DEBUG_CALL(" sendto()ing)");
|
||||
sotranslate_out(so, &addr);
|
||||
|
||||
+ /* Only allow DNS requests */
|
||||
+ if (slirp_nooutgoing && ntohs(addr.sin_port) != 53) {
|
||||
+ if (slirp_nooutgoing && ntohs(((struct sockaddr_in *)&addr)->sin_port) != 53) {
|
||||
+ errno = EHOSTUNREACH;
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
/* Don't care what port we get */
|
||||
ret = sendto(so->s, m->m_data, m->m_len, 0,
|
||||
(struct sockaddr *)&addr, sizeof (struct sockaddr));
|
||||
(struct sockaddr *)&addr, sizeof(addr));
|
||||
diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c
|
||||
index e161ed2..d0e29e0 100644
|
||||
index dbfd2c6..94126bd 100644
|
||||
--- a/slirp/tcp_subr.c
|
||||
+++ b/slirp/tcp_subr.c
|
||||
@@ -324,6 +324,9 @@ tcp_sockclosed(struct tcpcb *tp)
|
||||
@@ -388,6 +388,8 @@ tcp_sockclosed(struct tcpcb *tp)
|
||||
* nonblocking. Connect returns after the SYN is sent, and does
|
||||
* not wait for ACK+SYN.
|
||||
*/
|
||||
+
|
||||
+extern int slirp_nooutgoing;
|
||||
+
|
||||
int tcp_fconnect(struct socket *so)
|
||||
int tcp_fconnect(struct socket *so, unsigned short af)
|
||||
{
|
||||
Slirp *slirp = so->slirp;
|
||||
@@ -332,6 +335,11 @@ int tcp_fconnect(struct socket *so)
|
||||
int ret=0;
|
||||
@@ -395,6 +397,11 @@ int tcp_fconnect(struct socket *so, unsigned short af)
|
||||
DEBUG_CALL("tcp_fconnect");
|
||||
DEBUG_ARG("so = %p", so);
|
||||
|
||||
@ -81,26 +80,26 @@ index e161ed2..d0e29e0 100644
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
if( (ret = so->s = qemu_socket(AF_INET,SOCK_STREAM,0)) >= 0) {
|
||||
ret = so->s = qemu_socket(af, SOCK_STREAM, 0);
|
||||
if (ret >= 0) {
|
||||
int opt, s=so->s;
|
||||
struct sockaddr_in addr;
|
||||
@@ -424,6 +432,11 @@ void tcp_connect(struct socket *inso)
|
||||
@@ -475,6 +482,11 @@ void tcp_connect(struct socket *inso)
|
||||
tcp_close(sototcpcb(so)); /* This will sofree() as well */
|
||||
return;
|
||||
}
|
||||
+ if (slirp_nooutgoing && addr.sin_addr.s_addr != slirp_nooutgoing) {
|
||||
+ if (slirp_nooutgoing && ((struct sockaddr_in *)&addr)->sin_addr.s_addr != slirp_nooutgoing) {
|
||||
+ tcp_close(sototcpcb(so)); /* This will sofree() as well */
|
||||
+ close(s);
|
||||
+ closesocket(s);
|
||||
+ return;
|
||||
+ }
|
||||
qemu_set_nonblock(s);
|
||||
socket_set_fast_reuse(s);
|
||||
opt = 1;
|
||||
diff --git a/vl.c b/vl.c
|
||||
index 4211ff1..d5250b6 100644
|
||||
index bd81ea9..a8f1338 100644
|
||||
--- a/vl.c
|
||||
+++ b/vl.c
|
||||
@@ -167,6 +167,7 @@ int smp_threads = 1;
|
||||
@@ -162,6 +162,7 @@ int smp_threads = 1;
|
||||
int acpi_enabled = 1;
|
||||
int no_hpet = 0;
|
||||
int fd_bootchk = 1;
|
||||
@ -108,7 +107,7 @@ index 4211ff1..d5250b6 100644
|
||||
static int no_reboot;
|
||||
int no_shutdown = 0;
|
||||
int cursor_hide = 1;
|
||||
@@ -3385,6 +3386,14 @@ int main(int argc, char **argv, char **envp)
|
||||
@@ -3378,6 +3379,14 @@ int main(int argc, char **argv, char **envp)
|
||||
case QEMU_OPTION_singlestep:
|
||||
singlestep = 1;
|
||||
break;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From dcdb06da7c0233d7532ebb281e79d9a57231311b Mon Sep 17 00:00:00 2001
|
||||
From 1c744e643260e5a557cbc9a6140f362ccdc6c6b3 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=
|
||||
@ -9,10 +9,10 @@ TBD (from SUSE Studio team)
|
||||
1 file changed, 55 insertions(+)
|
||||
|
||||
diff --git a/ui/vnc.c b/ui/vnc.c
|
||||
index cbe4d33..36cd143 100644
|
||||
index d2ebf1f..ab65db9 100644
|
||||
--- a/ui/vnc.c
|
||||
+++ b/ui/vnc.c
|
||||
@@ -57,6 +57,8 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 };
|
||||
@@ -58,6 +58,8 @@ static const struct timeval VNC_REFRESH_LOSSY = { 2, 0 };
|
||||
static QTAILQ_HEAD(, VncDisplay) vnc_displays =
|
||||
QTAILQ_HEAD_INITIALIZER(vnc_displays);
|
||||
|
||||
@ -21,7 +21,7 @@ index cbe4d33..36cd143 100644
|
||||
static int vnc_cursor_define(VncState *vs);
|
||||
static void vnc_release_modifiers(VncState *vs);
|
||||
|
||||
@@ -1223,6 +1225,7 @@ static void vnc_disconnect_start(VncState *vs)
|
||||
@@ -1185,6 +1187,7 @@ static void vnc_disconnect_start(VncState *vs)
|
||||
void vnc_disconnect_finish(VncState *vs)
|
||||
{
|
||||
int i;
|
||||
@ -29,9 +29,9 @@ index cbe4d33..36cd143 100644
|
||||
|
||||
vnc_jobs_join(vs); /* Wait encoding jobs */
|
||||
|
||||
@@ -1271,6 +1274,13 @@ void vnc_disconnect_finish(VncState *vs)
|
||||
}
|
||||
g_free(vs->lossy_rect);
|
||||
@@ -1235,6 +1238,13 @@ void vnc_disconnect_finish(VncState *vs)
|
||||
object_unref(OBJECT(vs->sioc));
|
||||
vs->sioc = NULL;
|
||||
g_free(vs);
|
||||
+
|
||||
+ num_disconnects++;
|
||||
@ -42,9 +42,9 @@ index cbe4d33..36cd143 100644
|
||||
+ }
|
||||
}
|
||||
|
||||
ssize_t vnc_client_io_error(VncState *vs, ssize_t ret, int last_errno)
|
||||
@@ -3268,6 +3278,39 @@ char *vnc_display_local_addr(const char *id)
|
||||
return vnc_socket_local_addr("%s:%s", vs->lsock);
|
||||
ssize_t vnc_client_io_error(VncState *vs, ssize_t ret, Error **errp)
|
||||
@@ -3200,6 +3210,39 @@ char *vnc_display_local_addr(const char *id)
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static void read_file_password(const char *id, const char *filename)
|
||||
@ -83,7 +83,7 @@ index cbe4d33..36cd143 100644
|
||||
static QemuOptsList qemu_vnc_opts = {
|
||||
.name = "vnc",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_vnc_opts.head),
|
||||
@@ -3299,6 +3342,9 @@ static QemuOptsList qemu_vnc_opts = {
|
||||
@@ -3231,6 +3274,9 @@ static QemuOptsList qemu_vnc_opts = {
|
||||
.name = "connections",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
@ -93,7 +93,7 @@ index cbe4d33..36cd143 100644
|
||||
.name = "to",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
@@ -3311,6 +3357,9 @@ static QemuOptsList qemu_vnc_opts = {
|
||||
@@ -3243,6 +3289,9 @@ static QemuOptsList qemu_vnc_opts = {
|
||||
.name = "password",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
@ -103,7 +103,7 @@ index cbe4d33..36cd143 100644
|
||||
.name = "reverse",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
@@ -3544,6 +3593,7 @@ void vnc_display_open(const char *id, Error **errp)
|
||||
@@ -3476,6 +3525,7 @@ void vnc_display_open(const char *id, Error **errp)
|
||||
const char *share, *device_id;
|
||||
QemuConsole *con;
|
||||
bool password = false;
|
||||
@ -111,7 +111,7 @@ index cbe4d33..36cd143 100644
|
||||
bool reverse = false;
|
||||
const char *vnc;
|
||||
char *h;
|
||||
@@ -3662,6 +3712,10 @@ void vnc_display_open(const char *id, Error **errp)
|
||||
@@ -3601,6 +3651,10 @@ void vnc_display_open(const char *id, Error **errp)
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
@ -122,7 +122,7 @@ index cbe4d33..36cd143 100644
|
||||
|
||||
reverse = qemu_opt_get_bool(opts, "reverse", false);
|
||||
lock_key_sync = qemu_opt_get_bool(opts, "lock-key-sync", true);
|
||||
@@ -3750,6 +3804,7 @@ void vnc_display_open(const char *id, Error **errp)
|
||||
@@ -3689,6 +3743,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);
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ea1a1506d303f1ae4ad584c2dfb21c92c42970f6 Mon Sep 17 00:00:00 2001
|
||||
From 2be5a4993f98e5a4af0d2c388eba6e08955d7e14 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 367eac1..ca14909 100644
|
||||
index 77be181..787ba85 100644
|
||||
--- a/linux-user/syscall_defs.h
|
||||
+++ b/linux-user/syscall_defs.h
|
||||
@@ -954,6 +954,12 @@ struct target_pollfd {
|
||||
@@ -956,6 +956,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 436e643f2f17bac815c7ec7315e0758b22f10fb4 Mon Sep 17 00:00:00 2001
|
||||
From 90ede05e9c7502bf620bf027d660634636723407 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
|
||||
@ -17,10 +17,10 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
|
||||
2 files changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
|
||||
index ea9c98d..a9e77d0 100644
|
||||
index b55a9d2..be9c21c 100644
|
||||
--- a/linux-user/qemu.h
|
||||
+++ b/linux-user/qemu.h
|
||||
@@ -181,10 +181,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src,
|
||||
@@ -178,10 +178,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src,
|
||||
void target_set_brk(abi_ulong new_brk);
|
||||
abi_long do_brk(abi_ulong new_brk);
|
||||
void syscall_init(void);
|
||||
@ -36,10 +36,10 @@ index ea9c98d..a9e77d0 100644
|
||||
extern THREAD CPUState *thread_cpu;
|
||||
void cpu_loop(CPUArchState *env);
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index f7e57a6..2db566c 100644
|
||||
index 90b1698..2048082 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -5799,10 +5799,10 @@ int syscall_restartable(int syscall_nr)
|
||||
@@ -5983,10 +5983,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 6d0d71e8215d2273663a3ddb44cad3e24ed3ad35 Mon Sep 17 00:00:00 2001
|
||||
From 86ba74de946602754a7e624dd5f2be833abc50a4 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
|
||||
@ -36,30 +36,31 @@ Signed-off-by: Tim Hardeck <thardeck@suse.de>
|
||||
[AF: common-obj-y -> block-obj-y, drop probe hook (bsc#945778)]
|
||||
[AF: Drop bdrv_open() drv parameter for 2.5]
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
block/Makefile.objs | 1 +
|
||||
block/dictzip.c | 578 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 579 insertions(+)
|
||||
block/dictzip.c | 580 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 581 insertions(+)
|
||||
create mode 100644 block/dictzip.c
|
||||
|
||||
diff --git a/block/Makefile.objs b/block/Makefile.objs
|
||||
index 58ef2ef..c7b9294 100644
|
||||
index 44a5416..12e0cca 100644
|
||||
--- a/block/Makefile.objs
|
||||
+++ b/block/Makefile.objs
|
||||
@@ -20,6 +20,7 @@ block-obj-$(CONFIG_RBD) += rbd.o
|
||||
block-obj-$(CONFIG_GLUSTERFS) += gluster.o
|
||||
@@ -21,6 +21,7 @@ block-obj-$(CONFIG_GLUSTERFS) += gluster.o
|
||||
block-obj-$(CONFIG_ARCHIPELAGO) += archipelago.o
|
||||
block-obj-$(CONFIG_LIBSSH2) += ssh.o
|
||||
block-obj-y += accounting.o dirty-bitmap.o
|
||||
+block-obj-y += dictzip.o
|
||||
block-obj-y += accounting.o
|
||||
block-obj-y += write-threshold.o
|
||||
|
||||
block-obj-y += crypto.o
|
||||
diff --git a/block/dictzip.c b/block/dictzip.c
|
||||
new file mode 100644
|
||||
index 0000000..728d5b4
|
||||
index 0000000..717a7d3
|
||||
--- /dev/null
|
||||
+++ b/block/dictzip.c
|
||||
@@ -0,0 +1,578 @@
|
||||
@@ -0,0 +1,580 @@
|
||||
+/*
|
||||
+ * DictZip Block driver for dictzip enabled gzip files
|
||||
+ *
|
||||
@ -97,6 +98,8 @@ index 0000000..728d5b4
|
||||
+ * THE SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+#include "qemu/osdep.h"
|
||||
+#include "qapi/error.h"
|
||||
+#include "qemu-common.h"
|
||||
+#include "block/block_int.h"
|
||||
+#include <zlib.h>
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ba2b8bb664ae784303710caa916066c313510755 Mon Sep 17 00:00:00 2001
|
||||
From 57fd47a937941ca3bd3762a68e6e3dad0d4992da 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
|
||||
@ -37,30 +37,31 @@ Signed-off-by: Tim Hardeck <thardeck@suse.de>
|
||||
[AF: common-obj-y -> block-obj-y, drop probe hook (bsc#945778)]
|
||||
[AF: Drop bdrv_open() drv parameter for 2.5]
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
block/Makefile.objs | 1 +
|
||||
block/tar.c | 368 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 369 insertions(+)
|
||||
block/tar.c | 370 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 371 insertions(+)
|
||||
create mode 100644 block/tar.c
|
||||
|
||||
diff --git a/block/Makefile.objs b/block/Makefile.objs
|
||||
index c7b9294..0a4b697 100644
|
||||
index 12e0cca..34a6fba 100644
|
||||
--- a/block/Makefile.objs
|
||||
+++ b/block/Makefile.objs
|
||||
@@ -21,6 +21,7 @@ block-obj-$(CONFIG_GLUSTERFS) += gluster.o
|
||||
block-obj-$(CONFIG_ARCHIPELAGO) += archipelago.o
|
||||
@@ -22,6 +22,7 @@ block-obj-$(CONFIG_ARCHIPELAGO) += archipelago.o
|
||||
block-obj-$(CONFIG_LIBSSH2) += ssh.o
|
||||
block-obj-y += accounting.o dirty-bitmap.o
|
||||
block-obj-y += dictzip.o
|
||||
+block-obj-y += tar.o
|
||||
block-obj-y += accounting.o
|
||||
block-obj-y += write-threshold.o
|
||||
|
||||
block-obj-y += crypto.o
|
||||
diff --git a/block/tar.c b/block/tar.c
|
||||
new file mode 100644
|
||||
index 0000000..34dc57c
|
||||
index 0000000..31da8b9
|
||||
--- /dev/null
|
||||
+++ b/block/tar.c
|
||||
@@ -0,0 +1,368 @@
|
||||
@@ -0,0 +1,370 @@
|
||||
+/*
|
||||
+ * Tar block driver
|
||||
+ *
|
||||
@ -85,6 +86,8 @@ index 0000000..34dc57c
|
||||
+ * THE SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+#include "qemu/osdep.h"
|
||||
+#include "qapi/error.h"
|
||||
+#include "qemu-common.h"
|
||||
+#include "block/block_int.h"
|
||||
+
|
||||
|
@ -1,4 +1,4 @@
|
||||
From fc62b8b5778e4f68993b7a1a58a555838ec57b62 Mon Sep 17 00:00:00 2001
|
||||
From 767cd48b2238291256b2cdf7ae7ba1112b256071 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
|
||||
@ -8,10 +8,10 @@ Subject: [PATCH] Legacy Patch kvm-qemu-preXX-dictzip3.patch
|
||||
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/block/tar.c b/block/tar.c
|
||||
index 34dc57c..cade8ab 100644
|
||||
index 31da8b9..41620fd 100644
|
||||
--- a/block/tar.c
|
||||
+++ b/block/tar.c
|
||||
@@ -71,7 +71,8 @@ static int str_ends(char *str, const char *end)
|
||||
@@ -73,7 +73,8 @@ static int str_ends(char *str, const char *end)
|
||||
return !strncmp(str + str_len - end_len, end, end_len);
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@ index 34dc57c..cade8ab 100644
|
||||
{
|
||||
int retval = 0;
|
||||
|
||||
@@ -87,10 +88,17 @@ static int is_target_file(BlockDriverState *bs, char *filename)
|
||||
@@ -89,10 +90,17 @@ static int is_target_file(BlockDriverState *bs, char *filename)
|
||||
if (str_ends(filename, ".vmdk"))
|
||||
retval = 1;
|
||||
|
||||
@ -39,7 +39,7 @@ index 34dc57c..cade8ab 100644
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -217,12 +225,13 @@ static int tar_open(BlockDriverState *bs, QDict *options, int flags, Error **err
|
||||
@@ -219,12 +227,13 @@ static int tar_open(BlockDriverState *bs, QDict *options, int flags, Error **err
|
||||
bdrv_pread(s->hd, header_offs - s->file_len, s->longfile,
|
||||
sizeof(s->longfile));
|
||||
s->longfile[sizeof(s->longfile)-1] = '\0';
|
||||
|
@ -1,4 +1,4 @@
|
||||
From dff9e68c25df66cf1520415ea70f51c3068dc2c2 Mon Sep 17 00:00:00 2001
|
||||
From e4f5122f79d8570c5e6e42b4207ae1b761e48901 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,10 +16,10 @@ 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 745c354..d66a9ac 100644
|
||||
index 1fd4ea4..fd3254a 100644
|
||||
--- a/ui/console.c
|
||||
+++ b/ui/console.c
|
||||
@@ -855,7 +855,7 @@ static void console_putchar(QemuConsole *s, int ch)
|
||||
@@ -868,7 +868,7 @@ static void console_putchar(QemuConsole *s, int ch)
|
||||
} else {
|
||||
if (s->nb_esc_params < MAX_ESC_PARAMS)
|
||||
s->nb_esc_params++;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 199c13d0611ca730dcba1784cd4d6da9172a5413 Mon Sep 17 00:00:00 2001
|
||||
From c744f774b8399d42063b206a6f52a2450f6d7ed1 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,10 +22,10 @@ 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 2969c44..9a32d09 100644
|
||||
index 270819a..4a550c1 100644
|
||||
--- a/qemu-char.c
|
||||
+++ b/qemu-char.c
|
||||
@@ -381,6 +381,9 @@ typedef struct {
|
||||
@@ -512,6 +512,9 @@ typedef struct {
|
||||
IOEventHandler *chr_event[MAX_MUX];
|
||||
void *ext_opaque[MAX_MUX];
|
||||
CharDriverState *drv;
|
||||
@ -35,7 +35,7 @@ index 2969c44..9a32d09 100644
|
||||
int focus;
|
||||
int mux_cnt;
|
||||
int term_got_escape;
|
||||
@@ -540,6 +543,15 @@ static void mux_chr_accept_input(CharDriverState *chr)
|
||||
@@ -671,6 +674,15 @@ static void mux_chr_accept_input(CharDriverState *chr)
|
||||
d->chr_read[m](d->ext_opaque[m],
|
||||
&d->buffer[m][d->cons[m]++ & MUX_BUFFER_MASK], 1);
|
||||
}
|
||||
@ -51,7 +51,7 @@ index 2969c44..9a32d09 100644
|
||||
}
|
||||
|
||||
static int mux_chr_can_read(void *opaque)
|
||||
@@ -677,6 +689,10 @@ static CharDriverState *qemu_chr_open_mux(const char *id,
|
||||
@@ -812,6 +824,10 @@ static CharDriverState *qemu_chr_open_mux(const char *id,
|
||||
chr->opaque = d;
|
||||
d->drv = drv;
|
||||
d->focus = -1;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 625b8744b9365a6aec0f5197f7cd5fdec9e9dd26 Mon Sep 17 00:00:00 2001
|
||||
From 559e01a1b23a661ba9bf9da313018059e06d727a 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 2db566c..d8837a0 100644
|
||||
index 2048082..00c075d 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -6127,9 +6127,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
|
||||
@@ -6320,9 +6320,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 d426e2bf712d0393687782719b6dce20d7ef0e9f Mon Sep 17 00:00:00 2001
|
||||
From 9327ff8f826f2edfe6f06f710155f7ed78d0f120 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 ad1da0d..e6cabf0 100644
|
||||
index 54f7ad1..b4bf2f4 100644
|
||||
--- a/fsdev/virtfs-proxy-helper.c
|
||||
+++ b/fsdev/virtfs-proxy-helper.c
|
||||
@@ -9,6 +9,13 @@
|
||||
@ -26,6 +26,6 @@ index ad1da0d..e6cabf0 100644
|
||||
+#if defined(__powerpc64__)
|
||||
+#include <asm/types.h>
|
||||
+#endif
|
||||
#include "qemu/osdep.h"
|
||||
#include <sys/resource.h>
|
||||
#include <getopt.h>
|
||||
#include <syslog.h>
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e374ba1499f38700e88f30bb0a187b9c61768cca Mon Sep 17 00:00:00 2001
|
||||
From 85122b0b5a7da0999de9f49d2fbce71c53a936ab 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 b9552fd..da33d72 100755
|
||||
index 5db29f0..0df3fc0 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -1560,7 +1560,7 @@ fi
|
||||
@@ -1536,7 +1536,7 @@ fi
|
||||
|
||||
if test "$pie" = ""; then
|
||||
case "$cpu-$targetos" in
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0501fde012f0a5881d9b916e670f3c0518de5ceb Mon Sep 17 00:00:00 2001
|
||||
From 9cbbe949157593297780361313478da4690bc35d 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
|
||||
@ -14,10 +14,10 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/libqtest.c b/tests/libqtest.c
|
||||
index fa314e1..a57e114 100644
|
||||
index b12a9e4..8de01c0 100644
|
||||
--- a/tests/libqtest.c
|
||||
+++ b/tests/libqtest.c
|
||||
@@ -35,7 +35,7 @@
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "qapi/qmp/qjson.h"
|
||||
|
||||
#define MAX_IRQ 256
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6849a7c84a7f2639b0c72ddc6581ff9d4a1c23f7 Mon Sep 17 00:00:00 2001
|
||||
From f3e402fec7044aa773f5f6ced1381d6eed7ed2ca 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
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Alexander Graf <agraf@suse.de>
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/thread-pool.c b/thread-pool.c
|
||||
index 402c778..3d06c69 100644
|
||||
index 03ba0b0..b5b4fd3 100644
|
||||
--- a/thread-pool.c
|
||||
+++ b/thread-pool.c
|
||||
@@ -297,7 +297,12 @@ static void thread_pool_init_one(ThreadPool *pool, AioContext *ctx)
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 81b2f0411ac5660260d4d1b7ba527e969d5f9064 Mon Sep 17 00:00:00 2001
|
||||
From dca270d601b43fe181da48f6b38b63f485634705 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
|
||||
Date: Tue, 14 Apr 2015 18:42:06 +0200
|
||||
Subject: [PATCH] configure: Enable libseccomp for ppc
|
||||
@ -14,10 +14,10 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index da33d72..d140392 100755
|
||||
index 0df3fc0..81caff6 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -1910,6 +1910,9 @@ if test "$seccomp" != "no" ; then
|
||||
@@ -1875,6 +1875,9 @@ if test "$seccomp" != "no" ; then
|
||||
arm|aarch64)
|
||||
libseccomp_minver="2.2.3"
|
||||
;;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 131c58925741584d7c0185aeba810d7be39f354c Mon Sep 17 00:00:00 2001
|
||||
From 368cb4908724b4e855cb9bda37cb04284a39b116 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Graf <agraf@suse.de>
|
||||
Date: Mon, 15 Jun 2015 17:36:32 +0200
|
||||
Subject: [PATCH] dictzip: Fix on big endian systems
|
||||
@ -20,10 +20,10 @@ Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
1 file changed, 28 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/block/dictzip.c b/block/dictzip.c
|
||||
index 728d5b4..83484fd 100644
|
||||
index 717a7d3..1a104ac 100644
|
||||
--- a/block/dictzip.c
|
||||
+++ b/block/dictzip.c
|
||||
@@ -154,6 +154,7 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
|
||||
@@ -156,6 +156,7 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
|
||||
uint8_t header_flags;
|
||||
uint16_t chunk_len16;
|
||||
uint16_t chunk_cnt16;
|
||||
@ -31,7 +31,7 @@ index 728d5b4..83484fd 100644
|
||||
uint16_t header_ver;
|
||||
uint16_t tmp_short;
|
||||
uint64_t offset;
|
||||
@@ -253,11 +254,11 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
|
||||
@@ -255,11 +256,11 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
|
||||
break;
|
||||
case 99: /* Special Alex pigz version */
|
||||
/* number of chunks */
|
||||
@ -46,7 +46,7 @@ index 728d5b4..83484fd 100644
|
||||
|
||||
/* chunk count */
|
||||
if (bdrv_pread(s->hd, GZ_99_CHUNKCNT, &s->chunk_cnt, 4) != 4)
|
||||
@@ -265,7 +266,7 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
|
||||
@@ -267,7 +268,7 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
|
||||
|
||||
s->chunk_cnt = le32_to_cpu(s->chunk_cnt);
|
||||
|
||||
@ -55,7 +55,7 @@ index 728d5b4..83484fd 100644
|
||||
|
||||
/* file size */
|
||||
if (bdrv_pread(s->hd, GZ_99_FILESIZE, &s->file_len, 8) != 8)
|
||||
@@ -336,14 +337,14 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
|
||||
@@ -338,14 +339,14 @@ static int dictzip_open(BlockDriverState *bs, QDict *options, int flags, Error *
|
||||
s->offsets[i] = offset;
|
||||
switch (header_ver) {
|
||||
case 1:
|
||||
@ -73,7 +73,7 @@ index 728d5b4..83484fd 100644
|
||||
}
|
||||
qemu_opts_del(opts);
|
||||
|
||||
@@ -377,10 +378,26 @@ static void dictzip_read_cb(void *opaque, int ret)
|
||||
@@ -379,10 +380,26 @@ static void dictzip_read_cb(void *opaque, int ret)
|
||||
struct BDRVDictZipState *s = acb->s;
|
||||
uint8_t *buf;
|
||||
DictCache *cache;
|
||||
@ -101,7 +101,7 @@ index 728d5b4..83484fd 100644
|
||||
/* uncompress the chunk */
|
||||
acb->zStream->next_in = acb->gzipped;
|
||||
acb->zStream->avail_in = acb->gz_len;
|
||||
@@ -466,17 +483,6 @@ static BlockAIOCB *dictzip_aio_readv(BlockDriverState *bs,
|
||||
@@ -468,17 +485,6 @@ static BlockAIOCB *dictzip_aio_readv(BlockDriverState *bs,
|
||||
}
|
||||
|
||||
/* No cache, so let's decode */
|
||||
@ -119,7 +119,7 @@ index 728d5b4..83484fd 100644
|
||||
/* We need to read these chunks */
|
||||
first_chunk = start / s->chunk_len;
|
||||
first_offset = start - first_chunk * s->chunk_len;
|
||||
@@ -486,9 +492,9 @@ static BlockAIOCB *dictzip_aio_readv(BlockDriverState *bs,
|
||||
@@ -488,9 +494,9 @@ static BlockAIOCB *dictzip_aio_readv(BlockDriverState *bs,
|
||||
gz_len = 0;
|
||||
for (i = first_chunk; i <= last_chunk; i++) {
|
||||
if (s->chunks32)
|
||||
@ -131,7 +131,7 @@ index 728d5b4..83484fd 100644
|
||||
}
|
||||
|
||||
gz_sector_num = gz_start / SECTOR_SIZE;
|
||||
@@ -509,7 +515,7 @@ static BlockAIOCB *dictzip_aio_readv(BlockDriverState *bs,
|
||||
@@ -511,7 +517,7 @@ static BlockAIOCB *dictzip_aio_readv(BlockDriverState *bs,
|
||||
iov->iov_len = gz_nb_sectors * 512;
|
||||
qemu_iovec_init_external(qiov_gz, iov, 1);
|
||||
|
||||
|
56
0039-block-split-large-discard-requests-.patch
Normal file
56
0039-block-split-large-discard-requests-.patch
Normal file
@ -0,0 +1,56 @@
|
||||
From 88f6de6e8b1f91c71e56fa8125cc6fae2b53e725 Mon Sep 17 00:00:00 2001
|
||||
From: Olaf Hering <olaf@aepfle.de>
|
||||
Date: Thu, 24 Mar 2016 14:32:39 +0100
|
||||
Subject: [PATCH] block: split large discard requests from block frontend
|
||||
|
||||
Large discard requests lead to sign expansion errors in qemu.
|
||||
Since there is no API to tell a guest about the limitations qmeu
|
||||
has to split a large request itself.
|
||||
|
||||
[bsc#964427]
|
||||
|
||||
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||||
---
|
||||
block/io.c | 22 +++++++++++++++++++++-
|
||||
1 file changed, 21 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/block/io.c b/block/io.c
|
||||
index c4869b9..5b6ed58 100644
|
||||
--- a/block/io.c
|
||||
+++ b/block/io.c
|
||||
@@ -2442,7 +2442,7 @@ static void coroutine_fn bdrv_discard_co_entry(void *opaque)
|
||||
rwco->ret = bdrv_co_discard(rwco->bs, rwco->sector_num, rwco->nb_sectors);
|
||||
}
|
||||
|
||||
-int coroutine_fn bdrv_co_discard(BlockDriverState *bs, int64_t sector_num,
|
||||
+static int __bdrv_co_discard(BlockDriverState *bs, int64_t sector_num,
|
||||
int nb_sectors)
|
||||
{
|
||||
BdrvTrackedRequest req;
|
||||
@@ -2524,6 +2524,26 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
+int coroutine_fn bdrv_co_discard(BlockDriverState *bs, int64_t sector_num,
|
||||
+ int nb_sectors)
|
||||
+{
|
||||
+ int num, ret;
|
||||
+ int limit = BDRV_REQUEST_MAX_SECTORS;
|
||||
+ int remaining = nb_sectors;
|
||||
+ int64_t sector_offset = sector_num;
|
||||
+
|
||||
+ do {
|
||||
+ num = remaining > limit ? limit : remaining;
|
||||
+ ret = __bdrv_co_discard(bs, sector_offset, num);
|
||||
+ if (ret < 0)
|
||||
+ break;
|
||||
+ remaining -= num;
|
||||
+ sector_offset += num;
|
||||
+ } while (remaining > 0);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
int bdrv_discard(BlockDriverState *bs, int64_t sector_num, int nb_sectors)
|
||||
{
|
||||
Coroutine *co;
|
65
0040-xen_disk-Add-suse-specific-flush-di.patch
Normal file
65
0040-xen_disk-Add-suse-specific-flush-di.patch
Normal file
@ -0,0 +1,65 @@
|
||||
From 60d2b636c7dda2b2161ea963836b91b4af47021a Mon Sep 17 00:00:00 2001
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Wed, 9 Mar 2016 15:18:11 -0700
|
||||
Subject: [PATCH] xen_disk: Add suse specific flush disable handling and map to
|
||||
QEMU equiv
|
||||
|
||||
Add code to read the suse specific suse-diskcache-disable-flush flag out
|
||||
of xenstore, and set the equivalent flag within QEMU.
|
||||
|
||||
Patch taken from Xen's patch queue, Olaf Hering being the original author.
|
||||
[bsc#879425]
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||||
---
|
||||
hw/block/xen_disk.c | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c
|
||||
index d4ce380..9100862 100644
|
||||
--- a/hw/block/xen_disk.c
|
||||
+++ b/hw/block/xen_disk.c
|
||||
@@ -112,6 +112,7 @@ struct XenBlkDev {
|
||||
int requests_inflight;
|
||||
int requests_finished;
|
||||
|
||||
+ gboolean cache_unsafe;
|
||||
/* Persistent grants extension */
|
||||
gboolean feature_discard;
|
||||
gboolean feature_persistent;
|
||||
@@ -793,6 +794,16 @@ static void blk_parse_discard(struct XenBlkDev *blkdev)
|
||||
}
|
||||
}
|
||||
|
||||
+static void blk_parse_cache_unsafe(struct XenBlkDev *blkdev)
|
||||
+{
|
||||
+ int enable;
|
||||
+
|
||||
+ blkdev->cache_unsafe = false;
|
||||
+
|
||||
+ if (xenstore_read_be_int(&blkdev->xendev, "suse-diskcache-disable-flush", &enable) == 0)
|
||||
+ blkdev->cache_unsafe = !!enable;
|
||||
+}
|
||||
+
|
||||
static int blk_init(struct XenDevice *xendev)
|
||||
{
|
||||
struct XenBlkDev *blkdev = container_of(xendev, struct XenBlkDev, xendev);
|
||||
@@ -864,6 +875,7 @@ static int blk_init(struct XenDevice *xendev)
|
||||
xenstore_write_be_int(&blkdev->xendev, "info", info);
|
||||
|
||||
blk_parse_discard(blkdev);
|
||||
+ blk_parse_cache_unsafe(blkdev);
|
||||
|
||||
g_free(directiosafe);
|
||||
return 0;
|
||||
@@ -906,6 +918,9 @@ static int blk_connect(struct XenDevice *xendev)
|
||||
qflags |= BDRV_O_UNMAP;
|
||||
}
|
||||
|
||||
+ if (blkdev->cache_unsafe)
|
||||
+ qflags |= BDRV_O_NO_FLUSH;
|
||||
+
|
||||
/* init qemu block driver */
|
||||
index = (blkdev->xendev.dev - 202 * 256) / 16;
|
||||
blkdev->dinfo = drive_get(IF_XEN, 0, index);
|
27
0041-tests-Use-correct-config-param-for-.patch
Normal file
27
0041-tests-Use-correct-config-param-for-.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From e226abc9168f54fb53edcc1537ce77fc92b9ff26 Mon Sep 17 00:00:00 2001
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 31 Mar 2016 06:43:03 -0600
|
||||
Subject: [PATCH] tests: Use correct config param for inclusion of
|
||||
test-crypto-pbkdf test
|
||||
|
||||
It appears we have the wrong criteria for inclusion of the test-crypto-pbkdf
|
||||
test. Fix to use CONFIG_NETTLE_KDF instead of CONFIG_NETTLE.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
tests/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/Makefile b/tests/Makefile
|
||||
index 45b9048..651d8b2 100644
|
||||
--- a/tests/Makefile
|
||||
+++ b/tests/Makefile
|
||||
@@ -92,7 +92,7 @@ check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF)
|
||||
check-unit-y += tests/test-io-channel-command$(EXESUF)
|
||||
check-unit-y += tests/test-io-channel-buffer$(EXESUF)
|
||||
check-unit-y += tests/test-base64$(EXESUF)
|
||||
-check-unit-$(if $(CONFIG_NETTLE),y,$(CONFIG_GCRYPT_KDF)) += tests/test-crypto-pbkdf$(EXESUF)
|
||||
+check-unit-$(if $(CONFIG_NETTLE_KDF),y,$(CONFIG_GCRYPT_KDF)) += tests/test-crypto-pbkdf$(EXESUF)
|
||||
check-unit-y += tests/test-crypto-ivgen$(EXESUF)
|
||||
check-unit-y += tests/test-crypto-afsplit$(EXESUF)
|
||||
check-unit-y += tests/test-crypto-xts$(EXESUF)
|
53
0042-build-link-with-libatomic-on-powerp.patch
Normal file
53
0042-build-link-with-libatomic-on-powerp.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From 014f615b4a8e48ab8b9630b297e1e4283c9de623 Mon Sep 17 00:00:00 2001
|
||||
From: Olaf Hering <olaf@aepfle.de>
|
||||
Date: Fri, 1 Apr 2016 12:27:16 +0200
|
||||
Subject: [PATCH] build: link with libatomic on powerpc-linux
|
||||
|
||||
Building on powerpc-linux fails with undefined reference to
|
||||
__atomic_load_8 in icount_warp_rt(). Force linking to -latomic.
|
||||
|
||||
Fixes a0aa44b ("include/qemu/atomic.h: default to __atomic functions")
|
||||
|
||||
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||||
---
|
||||
configure | 27 +++++++++++++++++++++++++++
|
||||
1 file changed, 27 insertions(+)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 81caff6..2589044 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -4025,6 +4025,33 @@ if test "$usb_redir" != "no" ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
+if test "$linux_user" = "no" -a "$cpu" = "ppc" -a "$targetos" = "Linux" ; then
|
||||
+ # Do we need libm
|
||||
+ cat > $TMPC << EOF
|
||||
+ #include <unistd.h>
|
||||
+ #include <stdint.h>
|
||||
+ #include <qemu/atomic.h>
|
||||
+ int64_t val;
|
||||
+ int main(int argc, char **argv)
|
||||
+ {
|
||||
+ val = (int64_t)read(0, NULL, 0);
|
||||
+ if (atomic_read(&val) == -1) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+ return 1;
|
||||
+ }
|
||||
+EOF
|
||||
+ if compile_prog "-Iinclude" "" ; then
|
||||
+ :
|
||||
+ echo "No need to link with -latomic on powerpc-linux"
|
||||
+ elif compile_prog "-Iinclude" "-latomic" ; then
|
||||
+ echo "Link with -latomic on powerpc-linux"
|
||||
+ libs_softmmu="$libs_softmmu -latomic"
|
||||
+ else
|
||||
+ error_exit "libatomic check failed"
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
##########################################
|
||||
# check if we have VSS SDK headers for win
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3443887401619fe33bfa5d900a4f2d6a79425ae2b7e43d5b8c36eb7a683772d4
|
||||
size 25464996
|
Binary file not shown.
3
qemu-2.6.0-rc0.tar.bz2
Normal file
3
qemu-2.6.0-rc0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9eb223cb01207e8f1130f05af627e2708311db8322fec066b97d94c749c2315c
|
||||
size 25761212
|
BIN
qemu-2.6.0-rc0.tar.bz2.sig
Normal file
BIN
qemu-2.6.0-rc0.tar.bz2.sig
Normal file
Binary file not shown.
@ -1,3 +1,20 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 1 11:13:07 UTC 2016 - olaf@aepfle.de
|
||||
|
||||
- Update to v2.6.0-rc0: See http://wiki.qemu-project.org/ChangeLog/2.6
|
||||
* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.6
|
||||
* Accept every size in DISCARD request from a guest (bsc#964427)
|
||||
0039-block-split-large-discard-requests-.patch
|
||||
* Recognize libxl flag to disable flush in block device (bsc#879425)
|
||||
0040-xen_disk-Add-suse-specific-flush-di.patch
|
||||
* Use correct flag for crypto tests
|
||||
0041-tests-Use-correct-config-param-for-.patch
|
||||
* Fix build on powerpc:
|
||||
0042-build-link-with-libatomic-on-powerp.patch
|
||||
* Patches dropped (upstreamed):
|
||||
seabios_checkrom_typo.patch
|
||||
seabios_avoid_smbios_signature_string.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 8 14:54:26 UTC 2016 - 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.5.0
|
||||
Version: 2.5.90
|
||||
Release: 0
|
||||
Source: http://wiki.qemu.org/download/qemu-2.5.0.tar.bz2
|
||||
Source: http://wiki.qemu.org/download/qemu-2.6.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
|
||||
@ -63,6 +63,10 @@ Patch0035: 0035-qtest-Increase-socket-timeout.patch
|
||||
Patch0036: 0036-AIO-Reduce-number-of-threads-for-32.patch
|
||||
Patch0037: 0037-configure-Enable-libseccomp-for-ppc.patch
|
||||
Patch0038: 0038-dictzip-Fix-on-big-endian-systems.patch
|
||||
Patch0039: 0039-block-split-large-discard-requests-.patch
|
||||
Patch0040: 0040-xen_disk-Add-suse-specific-flush-di.patch
|
||||
Patch0041: 0041-tests-Use-correct-config-param-for-.patch
|
||||
Patch0042: 0042-build-link-with-libatomic-on-powerp.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.5.0
|
||||
%setup -q -n qemu-2.6.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.5.0.tar.bz2
|
||||
Source: http://wiki.qemu.org/download/qemu-2.6.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.5.0
|
||||
%setup -q -n qemu-2.6.0-rc0
|
||||
PATCH_EXEC
|
||||
|
||||
%build
|
||||
|
@ -1,3 +1,20 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 1 11:13:07 UTC 2016 - olaf@aepfle.de
|
||||
|
||||
- Update to v2.6.0-rc0: See http://wiki.qemu-project.org/ChangeLog/2.6
|
||||
* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.6
|
||||
* Accept every size in DISCARD request from a guest (bsc#964427)
|
||||
0039-block-split-large-discard-requests-.patch
|
||||
* Recognize libxl flag to disable flush in block device (bsc#879425)
|
||||
0040-xen_disk-Add-suse-specific-flush-di.patch
|
||||
* Use correct flag for crypto tests
|
||||
0041-tests-Use-correct-config-param-for-.patch
|
||||
* Fix build on powerpc:
|
||||
0042-build-link-with-libatomic-on-powerp.patch
|
||||
* Patches dropped (upstreamed):
|
||||
seabios_checkrom_typo.patch
|
||||
seabios_avoid_smbios_signature_string.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 9 17:08:21 UTC 2016 - afaerber@suse.de
|
||||
|
||||
|
@ -51,10 +51,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.5.0
|
||||
Version: 2.5.90
|
||||
Release: 0
|
||||
Source: http://wiki.qemu.org/download/qemu-2.5.0.tar.bz2
|
||||
Source99: http://wiki.qemu.org/download/qemu-2.5.0.tar.bz2.sig
|
||||
Source: http://wiki.qemu.org/download/qemu-2.6.0-rc0.tar.bz2
|
||||
Source99: http://wiki.qemu.org/download/qemu-2.6.0-rc0.tar.bz2.sig
|
||||
Source1: 80-kvm.rules
|
||||
Source2: qemu-ifup
|
||||
Source3: kvm_stat
|
||||
@ -104,6 +104,10 @@ Patch0035: 0035-qtest-Increase-socket-timeout.patch
|
||||
Patch0036: 0036-AIO-Reduce-number-of-threads-for-32.patch
|
||||
Patch0037: 0037-configure-Enable-libseccomp-for-ppc.patch
|
||||
Patch0038: 0038-dictzip-Fix-on-big-endian-systems.patch
|
||||
Patch0039: 0039-block-split-large-discard-requests-.patch
|
||||
Patch0040: 0040-xen_disk-Add-suse-specific-flush-di.patch
|
||||
Patch0041: 0041-tests-Use-correct-config-param-for-.patch
|
||||
Patch0042: 0042-build-link-with-libatomic-on-powerp.patch
|
||||
# Please do not add QEMU patches manually here.
|
||||
# Run update_git.sh to regenerate this queue.
|
||||
|
||||
@ -111,9 +115,6 @@ Patch0038: 0038-dictzip-Fix-on-big-endian-systems.patch
|
||||
%if %{build_x86_fw_from_source}
|
||||
# PATCH-FIX-OPENSUSE seabios_128kb.patch brogers@suse.com -- make it fit
|
||||
Patch1000: seabios_128kb.patch
|
||||
# PATCH-FIX-UPSTREAM seabios_checkrom_typo.patch afaerber@suse.de -- tidy error message
|
||||
Patch1001: seabios_checkrom_typo.patch
|
||||
Patch1002: seabios_avoid_smbios_signature_string.patch
|
||||
%endif
|
||||
|
||||
# this is to make lint happy
|
||||
@ -279,8 +280,8 @@ Suggests: qemu-lang
|
||||
Recommends: qemu-ksm = %{version}
|
||||
%endif
|
||||
|
||||
%define built_firmware_files {acpi-dsdt.aml bios.bin bios-256k.bin \
|
||||
q35-acpi-dsdt.aml sgabios.bin vgabios.bin vgabios-cirrus.bin \
|
||||
%define built_firmware_files {bios.bin bios-256k.bin \
|
||||
sgabios.bin vgabios.bin vgabios-cirrus.bin \
|
||||
vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin vgabios-qxl.bin \
|
||||
optionrom/linuxboot.bin optionrom/multiboot.bin optionrom/kvmvapic.bin \
|
||||
pxe-e1000.rom pxe-pcnet.rom pxe-ne2k_pci.rom pxe-rtl8139.rom pxe-eepro100.rom pxe-virtio.rom}
|
||||
@ -518,7 +519,7 @@ This sub-package contains the guest agent.
|
||||
%package seabios
|
||||
Summary: X86 BIOS for QEMU
|
||||
Group: System/Emulators/PC
|
||||
Version: 1.8.2
|
||||
Version: 1.9.1
|
||||
Release: 0
|
||||
%if 0%{?suse_version} > %{noarch_supported}
|
||||
BuildArch: noarch
|
||||
@ -532,7 +533,7 @@ is the default BIOS for QEMU.
|
||||
%package vgabios
|
||||
Summary: VGA BIOSes for QEMU
|
||||
Group: System/Emulators/PC
|
||||
Version: 1.8.2
|
||||
Version: 1.9.1
|
||||
Release: 0
|
||||
%if 0%{?suse_version} > %{noarch_supported}
|
||||
BuildArch: noarch
|
||||
@ -589,7 +590,7 @@ This package provides a service file for starting and stopping KSM.
|
||||
%endif # !qemu-testsuite
|
||||
|
||||
%prep
|
||||
%setup -q -n qemu-2.5.0
|
||||
%setup -q -n qemu-2.6.0-rc0
|
||||
%patch0001 -p1
|
||||
%patch0002 -p1
|
||||
%patch0003 -p1
|
||||
@ -628,12 +629,14 @@ 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
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
popd
|
||||
|
||||
# as a safeguard, delete the firmware files that we intend to build
|
||||
@ -648,12 +651,13 @@ rm -f pc-bios/slof.bin
|
||||
%endif
|
||||
|
||||
%build
|
||||
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
|
||||
./configure \
|
||||
--prefix=%_prefix \
|
||||
--sysconfdir=%_sysconfdir \
|
||||
--libdir=%_libdir \
|
||||
--libexecdir=%_libexecdir \
|
||||
--localstatedir=%_localstatedir \
|
||||
--extra-cflags="%{optflags}" \
|
||||
--disable-strip \
|
||||
--enable-system --disable-linux-user \
|
||||
--enable-tools --enable-guest-agent \
|
||||
--enable-modules \
|
||||
@ -778,9 +782,12 @@ rm -f pc-bios/slof.bin
|
||||
%ifarch x86_64
|
||||
--enable-xen \
|
||||
--enable-xen-pci-passthrough \
|
||||
--enable-xen-pv-domain-build \
|
||||
%else
|
||||
--disable-xen \
|
||||
%endif
|
||||
\
|
||||
--disable-strip
|
||||
|
||||
%if "%{name}" != "qemu-testsuite"
|
||||
|
||||
@ -788,13 +795,13 @@ make %{?_smp_mflags} V=1
|
||||
|
||||
# Firmware
|
||||
%if %{build_x86_fw_from_source}
|
||||
make -C roms bios
|
||||
make -C roms seavgabios
|
||||
make -C roms pxerom
|
||||
make -C roms sgabios
|
||||
make %{?_smp_mflags} -C roms bios
|
||||
make %{?_smp_mflags} -C roms seavgabios
|
||||
make %{?_smp_mflags} -C roms pxerom
|
||||
make -C roms sgabios
|
||||
%endif
|
||||
%if %{build_slof_from_source}
|
||||
make -C roms slof
|
||||
make %{?_smp_mflags} -C roms slof
|
||||
%endif
|
||||
%ifarch s390x
|
||||
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/s390-ccw.img
|
||||
@ -869,7 +876,7 @@ format=`qemu-img info test.tar | grep "file format:" | cut -d ':' -f 2 | tr -d '
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
rm -fr $RPM_BUILD_ROOT/%_datadir/doc
|
||||
%if ! %{build_x86_fw_from_source}
|
||||
for f in acpi-dsdt.aml q35-acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
|
||||
for f in acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
|
||||
vgabios-cirrus.bin vgabios-qxl.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
|
||||
vgabios.bin; do
|
||||
rm $RPM_BUILD_ROOT/%_datadir/%name/$f
|
||||
@ -1026,7 +1033,6 @@ fi
|
||||
%files s390
|
||||
%defattr(-, root, root)
|
||||
%_bindir/qemu-system-s390x
|
||||
%_datadir/%name/s390-zipl.rom
|
||||
%_datadir/%name/s390-ccw.img
|
||||
|
||||
%files arm
|
||||
@ -1101,7 +1107,6 @@ fi
|
||||
%_datadir/%name/bios.bin
|
||||
%_datadir/%name/bios-256k.bin
|
||||
%_datadir/%name/acpi-dsdt.aml
|
||||
%_datadir/%name/q35-acpi-dsdt.aml
|
||||
|
||||
%files vgabios
|
||||
%defattr(-, root, root)
|
||||
|
17
qemu.changes
17
qemu.changes
@ -1,3 +1,20 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 1 11:13:07 UTC 2016 - olaf@aepfle.de
|
||||
|
||||
- Update to v2.6.0-rc0: See http://wiki.qemu-project.org/ChangeLog/2.6
|
||||
* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.6
|
||||
* Accept every size in DISCARD request from a guest (bsc#964427)
|
||||
0039-block-split-large-discard-requests-.patch
|
||||
* Recognize libxl flag to disable flush in block device (bsc#879425)
|
||||
0040-xen_disk-Add-suse-specific-flush-di.patch
|
||||
* Use correct flag for crypto tests
|
||||
0041-tests-Use-correct-config-param-for-.patch
|
||||
* Fix build on powerpc:
|
||||
0042-build-link-with-libatomic-on-powerp.patch
|
||||
* Patches dropped (upstreamed):
|
||||
seabios_checkrom_typo.patch
|
||||
seabios_avoid_smbios_signature_string.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 9 17:08:21 UTC 2016 - afaerber@suse.de
|
||||
|
||||
|
51
qemu.spec
51
qemu.spec
@ -51,10 +51,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.5.0
|
||||
Version: 2.5.90
|
||||
Release: 0
|
||||
Source: http://wiki.qemu.org/download/qemu-2.5.0.tar.bz2
|
||||
Source99: http://wiki.qemu.org/download/qemu-2.5.0.tar.bz2.sig
|
||||
Source: http://wiki.qemu.org/download/qemu-2.6.0-rc0.tar.bz2
|
||||
Source99: http://wiki.qemu.org/download/qemu-2.6.0-rc0.tar.bz2.sig
|
||||
Source1: 80-kvm.rules
|
||||
Source2: qemu-ifup
|
||||
Source3: kvm_stat
|
||||
@ -104,6 +104,10 @@ Patch0035: 0035-qtest-Increase-socket-timeout.patch
|
||||
Patch0036: 0036-AIO-Reduce-number-of-threads-for-32.patch
|
||||
Patch0037: 0037-configure-Enable-libseccomp-for-ppc.patch
|
||||
Patch0038: 0038-dictzip-Fix-on-big-endian-systems.patch
|
||||
Patch0039: 0039-block-split-large-discard-requests-.patch
|
||||
Patch0040: 0040-xen_disk-Add-suse-specific-flush-di.patch
|
||||
Patch0041: 0041-tests-Use-correct-config-param-for-.patch
|
||||
Patch0042: 0042-build-link-with-libatomic-on-powerp.patch
|
||||
# Please do not add QEMU patches manually here.
|
||||
# Run update_git.sh to regenerate this queue.
|
||||
|
||||
@ -111,9 +115,6 @@ Patch0038: 0038-dictzip-Fix-on-big-endian-systems.patch
|
||||
%if %{build_x86_fw_from_source}
|
||||
# PATCH-FIX-OPENSUSE seabios_128kb.patch brogers@suse.com -- make it fit
|
||||
Patch1000: seabios_128kb.patch
|
||||
# PATCH-FIX-UPSTREAM seabios_checkrom_typo.patch afaerber@suse.de -- tidy error message
|
||||
Patch1001: seabios_checkrom_typo.patch
|
||||
Patch1002: seabios_avoid_smbios_signature_string.patch
|
||||
%endif
|
||||
|
||||
# this is to make lint happy
|
||||
@ -279,8 +280,8 @@ Suggests: qemu-lang
|
||||
Recommends: qemu-ksm = %{version}
|
||||
%endif
|
||||
|
||||
%define built_firmware_files {acpi-dsdt.aml bios.bin bios-256k.bin \
|
||||
q35-acpi-dsdt.aml sgabios.bin vgabios.bin vgabios-cirrus.bin \
|
||||
%define built_firmware_files {bios.bin bios-256k.bin \
|
||||
sgabios.bin vgabios.bin vgabios-cirrus.bin \
|
||||
vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin vgabios-qxl.bin \
|
||||
optionrom/linuxboot.bin optionrom/multiboot.bin optionrom/kvmvapic.bin \
|
||||
pxe-e1000.rom pxe-pcnet.rom pxe-ne2k_pci.rom pxe-rtl8139.rom pxe-eepro100.rom pxe-virtio.rom}
|
||||
@ -518,7 +519,7 @@ This sub-package contains the guest agent.
|
||||
%package seabios
|
||||
Summary: X86 BIOS for QEMU
|
||||
Group: System/Emulators/PC
|
||||
Version: 1.8.2
|
||||
Version: 1.9.1
|
||||
Release: 0
|
||||
%if 0%{?suse_version} > %{noarch_supported}
|
||||
BuildArch: noarch
|
||||
@ -532,7 +533,7 @@ is the default BIOS for QEMU.
|
||||
%package vgabios
|
||||
Summary: VGA BIOSes for QEMU
|
||||
Group: System/Emulators/PC
|
||||
Version: 1.8.2
|
||||
Version: 1.9.1
|
||||
Release: 0
|
||||
%if 0%{?suse_version} > %{noarch_supported}
|
||||
BuildArch: noarch
|
||||
@ -589,7 +590,7 @@ This package provides a service file for starting and stopping KSM.
|
||||
%endif # !qemu-testsuite
|
||||
|
||||
%prep
|
||||
%setup -q -n qemu-2.5.0
|
||||
%setup -q -n qemu-2.6.0-rc0
|
||||
%patch0001 -p1
|
||||
%patch0002 -p1
|
||||
%patch0003 -p1
|
||||
@ -628,12 +629,14 @@ 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
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
popd
|
||||
|
||||
# as a safeguard, delete the firmware files that we intend to build
|
||||
@ -648,12 +651,13 @@ rm -f pc-bios/slof.bin
|
||||
%endif
|
||||
|
||||
%build
|
||||
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
|
||||
./configure \
|
||||
--prefix=%_prefix \
|
||||
--sysconfdir=%_sysconfdir \
|
||||
--libdir=%_libdir \
|
||||
--libexecdir=%_libexecdir \
|
||||
--localstatedir=%_localstatedir \
|
||||
--extra-cflags="%{optflags}" \
|
||||
--disable-strip \
|
||||
--enable-system --disable-linux-user \
|
||||
--enable-tools --enable-guest-agent \
|
||||
--enable-modules \
|
||||
@ -778,9 +782,12 @@ rm -f pc-bios/slof.bin
|
||||
%ifarch x86_64
|
||||
--enable-xen \
|
||||
--enable-xen-pci-passthrough \
|
||||
--enable-xen-pv-domain-build \
|
||||
%else
|
||||
--disable-xen \
|
||||
%endif
|
||||
\
|
||||
--disable-strip
|
||||
|
||||
%if "%{name}" != "qemu-testsuite"
|
||||
|
||||
@ -788,13 +795,13 @@ make %{?_smp_mflags} V=1
|
||||
|
||||
# Firmware
|
||||
%if %{build_x86_fw_from_source}
|
||||
make -C roms bios
|
||||
make -C roms seavgabios
|
||||
make -C roms pxerom
|
||||
make -C roms sgabios
|
||||
make %{?_smp_mflags} -C roms bios
|
||||
make %{?_smp_mflags} -C roms seavgabios
|
||||
make %{?_smp_mflags} -C roms pxerom
|
||||
make -C roms sgabios
|
||||
%endif
|
||||
%if %{build_slof_from_source}
|
||||
make -C roms slof
|
||||
make %{?_smp_mflags} -C roms slof
|
||||
%endif
|
||||
%ifarch s390x
|
||||
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/s390-ccw.img
|
||||
@ -869,7 +876,7 @@ format=`qemu-img info test.tar | grep "file format:" | cut -d ':' -f 2 | tr -d '
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
rm -fr $RPM_BUILD_ROOT/%_datadir/doc
|
||||
%if ! %{build_x86_fw_from_source}
|
||||
for f in acpi-dsdt.aml q35-acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
|
||||
for f in acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
|
||||
vgabios-cirrus.bin vgabios-qxl.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
|
||||
vgabios.bin; do
|
||||
rm $RPM_BUILD_ROOT/%_datadir/%name/$f
|
||||
@ -1026,7 +1033,6 @@ fi
|
||||
%files s390
|
||||
%defattr(-, root, root)
|
||||
%_bindir/qemu-system-s390x
|
||||
%_datadir/%name/s390-zipl.rom
|
||||
%_datadir/%name/s390-ccw.img
|
||||
|
||||
%files arm
|
||||
@ -1101,7 +1107,6 @@ fi
|
||||
%_datadir/%name/bios.bin
|
||||
%_datadir/%name/bios-256k.bin
|
||||
%_datadir/%name/acpi-dsdt.aml
|
||||
%_datadir/%name/q35-acpi-dsdt.aml
|
||||
|
||||
%files vgabios
|
||||
%defattr(-, root, root)
|
||||
|
37
qemu.spec.in
37
qemu.spec.in
@ -53,8 +53,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/qemu-2.5.0.tar.bz2
|
||||
Source99: http://wiki.qemu.org/download/qemu-2.5.0.tar.bz2.sig
|
||||
Source: http://wiki.qemu.org/download/qemu-2.6.0-rc0.tar.bz2
|
||||
Source99: http://wiki.qemu.org/download/qemu-2.6.0-rc0.tar.bz2.sig
|
||||
Source1: 80-kvm.rules
|
||||
Source2: qemu-ifup
|
||||
Source3: kvm_stat
|
||||
@ -74,9 +74,6 @@ PATCH_FILES
|
||||
%if %{build_x86_fw_from_source}
|
||||
# PATCH-FIX-OPENSUSE seabios_128kb.patch brogers@suse.com -- make it fit
|
||||
Patch1000: seabios_128kb.patch
|
||||
# PATCH-FIX-UPSTREAM seabios_checkrom_typo.patch afaerber@suse.de -- tidy error message
|
||||
Patch1001: seabios_checkrom_typo.patch
|
||||
Patch1002: seabios_avoid_smbios_signature_string.patch
|
||||
%endif
|
||||
|
||||
# this is to make lint happy
|
||||
@ -242,8 +239,8 @@ Suggests: qemu-lang
|
||||
Recommends: qemu-ksm = %{version}
|
||||
%endif
|
||||
|
||||
%define built_firmware_files {acpi-dsdt.aml bios.bin bios-256k.bin \
|
||||
q35-acpi-dsdt.aml sgabios.bin vgabios.bin vgabios-cirrus.bin \
|
||||
%define built_firmware_files {bios.bin bios-256k.bin \
|
||||
sgabios.bin vgabios.bin vgabios-cirrus.bin \
|
||||
vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin vgabios-qxl.bin \
|
||||
optionrom/linuxboot.bin optionrom/multiboot.bin optionrom/kvmvapic.bin \
|
||||
pxe-e1000.rom pxe-pcnet.rom pxe-ne2k_pci.rom pxe-rtl8139.rom pxe-eepro100.rom pxe-virtio.rom}
|
||||
@ -552,14 +549,12 @@ This package provides a service file for starting and stopping KSM.
|
||||
%endif # !qemu-testsuite
|
||||
|
||||
%prep
|
||||
%setup -q -n qemu-2.5.0
|
||||
%setup -q -n qemu-2.6.0-rc0
|
||||
PATCH_EXEC
|
||||
|
||||
%if %{build_x86_fw_from_source}
|
||||
pushd roms/seabios
|
||||
%patch1000 -p1
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
popd
|
||||
|
||||
# as a safeguard, delete the firmware files that we intend to build
|
||||
@ -574,12 +569,13 @@ rm -f pc-bios/slof.bin
|
||||
%endif
|
||||
|
||||
%build
|
||||
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
|
||||
./configure \
|
||||
--prefix=%_prefix \
|
||||
--sysconfdir=%_sysconfdir \
|
||||
--libdir=%_libdir \
|
||||
--libexecdir=%_libexecdir \
|
||||
--localstatedir=%_localstatedir \
|
||||
--extra-cflags="%{optflags}" \
|
||||
--disable-strip \
|
||||
--enable-system --disable-linux-user \
|
||||
--enable-tools --enable-guest-agent \
|
||||
--enable-modules \
|
||||
@ -704,9 +700,12 @@ rm -f pc-bios/slof.bin
|
||||
%ifarch x86_64
|
||||
--enable-xen \
|
||||
--enable-xen-pci-passthrough \
|
||||
--enable-xen-pv-domain-build \
|
||||
%else
|
||||
--disable-xen \
|
||||
%endif
|
||||
\
|
||||
--disable-strip
|
||||
|
||||
%if "%{name}" != "qemu-testsuite"
|
||||
|
||||
@ -714,13 +713,13 @@ make %{?_smp_mflags} V=1
|
||||
|
||||
# Firmware
|
||||
%if %{build_x86_fw_from_source}
|
||||
make -C roms bios
|
||||
make -C roms seavgabios
|
||||
make -C roms pxerom
|
||||
make -C roms sgabios
|
||||
make %{?_smp_mflags} -C roms bios
|
||||
make %{?_smp_mflags} -C roms seavgabios
|
||||
make %{?_smp_mflags} -C roms pxerom
|
||||
make -C roms sgabios
|
||||
%endif
|
||||
%if %{build_slof_from_source}
|
||||
make -C roms slof
|
||||
make %{?_smp_mflags} -C roms slof
|
||||
%endif
|
||||
%ifarch s390x
|
||||
cp pc-bios/s390-ccw/s390-ccw.img pc-bios/s390-ccw.img
|
||||
@ -795,7 +794,7 @@ format=`qemu-img info test.tar | grep "file format:" | cut -d ':' -f 2 | tr -d '
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
rm -fr $RPM_BUILD_ROOT/%_datadir/doc
|
||||
%if ! %{build_x86_fw_from_source}
|
||||
for f in acpi-dsdt.aml q35-acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
|
||||
for f in acpi-dsdt.aml bios-256k.bin bios.bin efi-*.rom pxe-*.rom sgabios.bin \
|
||||
vgabios-cirrus.bin vgabios-qxl.bin vgabios-stdvga.bin vgabios-virtio.bin vgabios-vmware.bin \
|
||||
vgabios.bin; do
|
||||
rm $RPM_BUILD_ROOT/%_datadir/%name/$f
|
||||
@ -953,7 +952,6 @@ fi
|
||||
%files s390
|
||||
%defattr(-, root, root)
|
||||
%_bindir/qemu-system-s390x
|
||||
%_datadir/%name/s390-zipl.rom
|
||||
%_datadir/%name/s390-ccw.img
|
||||
|
||||
%files arm
|
||||
@ -1028,7 +1026,6 @@ fi
|
||||
%_datadir/%name/bios.bin
|
||||
%_datadir/%name/bios-256k.bin
|
||||
%_datadir/%name/acpi-dsdt.aml
|
||||
%_datadir/%name/q35-acpi-dsdt.aml
|
||||
|
||||
%files vgabios
|
||||
%defattr(-, root, root)
|
||||
|
@ -1,70 +0,0 @@
|
||||
From 9d3c06336ec443b6763c92f929013afcfce70c4a Mon Sep 17 00:00:00 2001
|
||||
From: Kevin O'Connor <kevin@koconnor.net>
|
||||
Date: Thu, 9 Apr 2015 11:57:44 -0400
|
||||
Subject: [PATCH] smbios: Use integer signature instead of string signature
|
||||
|
||||
Change the smbios structure to use a 4 byte u32 signature field
|
||||
instead of a 4 byte character string field. In practice, this allows
|
||||
the compiler to place the signature in the initialize code segment and
|
||||
thus makes it less likely the signature would be found in the
|
||||
f-segment. (If the smbios signature is found in the f-segment it can
|
||||
confuse some table scans.)
|
||||
|
||||
Reviewed-by: Bruce Rogers <brogers@suse.com>
|
||||
Tested-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
src/fw/biostables.c | 2 +-
|
||||
src/fw/smbios.c | 2 +-
|
||||
src/std/smbios.h | 4 +++-
|
||||
3 files changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/fw/biostables.c b/src/fw/biostables.c
|
||||
index 50a891b..450aca2 100644
|
||||
--- a/src/fw/biostables.c
|
||||
+++ b/src/fw/biostables.c
|
||||
@@ -271,7 +271,7 @@ copy_smbios(void *pos)
|
||||
if (SMBiosAddr)
|
||||
return;
|
||||
struct smbios_entry_point *p = pos;
|
||||
- if (memcmp(p->anchor_string, "_SM_", 4))
|
||||
+ if (p->signature != SMBIOS_SIGNATURE)
|
||||
return;
|
||||
if (checksum(pos, 0x10) != 0)
|
||||
return;
|
||||
diff --git a/src/fw/smbios.c b/src/fw/smbios.c
|
||||
index dba0541..f3b5ad9 100644
|
||||
--- a/src/fw/smbios.c
|
||||
+++ b/src/fw/smbios.c
|
||||
@@ -37,7 +37,7 @@ smbios_entry_point_setup(u16 max_structure_size,
|
||||
|
||||
struct smbios_entry_point ep;
|
||||
memset(&ep, 0, sizeof(ep));
|
||||
- memcpy(ep.anchor_string, "_SM_", 4);
|
||||
+ ep.signature = SMBIOS_SIGNATURE;
|
||||
ep.length = 0x1f;
|
||||
ep.smbios_major_version = 2;
|
||||
ep.smbios_minor_version = 4;
|
||||
diff --git a/src/std/smbios.h b/src/std/smbios.h
|
||||
index 0513716..4ccf2ea 100644
|
||||
--- a/src/std/smbios.h
|
||||
+++ b/src/std/smbios.h
|
||||
@@ -3,11 +3,13 @@
|
||||
|
||||
#include "types.h" // u32
|
||||
|
||||
+#define SMBIOS_SIGNATURE 0x5f4d535f // "_SM_"
|
||||
+
|
||||
/* SMBIOS entry point -- must be written to a 16-bit aligned address
|
||||
between 0xf0000 and 0xfffff.
|
||||
*/
|
||||
struct smbios_entry_point {
|
||||
- char anchor_string[4];
|
||||
+ u32 signature;
|
||||
u8 checksum;
|
||||
u8 length;
|
||||
u8 smbios_major_version;
|
||||
--
|
||||
2.1.4
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 6b0e2bd9d914f6421c015ec28d96cf069fb8015f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
|
||||
Date: Thu, 19 Mar 2015 17:13:00 +0100
|
||||
Subject: [PATCH] checkrom: Fix typo in error message
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
increate -> increase
|
||||
|
||||
Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
scripts/checkrom.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/scripts/checkrom.py b/scripts/checkrom.py
|
||||
index 377277d..aced5e2 100755
|
||||
--- a/scripts/checkrom.py
|
||||
+++ b/scripts/checkrom.py
|
||||
@@ -39,7 +39,7 @@ def main():
|
||||
finalsize = 256*1024
|
||||
if datasize > finalsize:
|
||||
print("Error! ROM doesn't fit (%d > %d)" % (datasize, finalsize))
|
||||
- print(" You have to either increate the size (CONFIG_ROM_SIZE)")
|
||||
+ print(" You have to either increase the size (CONFIG_ROM_SIZE)")
|
||||
print(" or turn off some features (such as hardware support not")
|
||||
print(" needed) to make it fit. Trying a more recent gcc version")
|
||||
print(" might work too.")
|
||||
--
|
||||
2.1.4
|
||||
|
@ -11,8 +11,8 @@
|
||||
|
||||
GIT_TREE=git://github.com/openSUSE/qemu.git
|
||||
GIT_LOCAL_TREE=~/git/qemu-opensuse
|
||||
GIT_BRANCH=opensuse-2.5
|
||||
GIT_UPSTREAM_TAG=v2.5.0
|
||||
GIT_BRANCH=opensuse-2.6
|
||||
GIT_UPSTREAM_TAG=v2.6.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