diff options
Diffstat (limited to 'meta/recipes-devtools/qemu')
20 files changed, 107 insertions, 227 deletions
diff --git a/meta/recipes-devtools/qemu/qemu-native.inc b/meta/recipes-devtools/qemu/qemu-native.inc index 69c2c43e6b..28cfd2cca3 100644 --- a/meta/recipes-devtools/qemu/qemu-native.inc +++ b/meta/recipes-devtools/qemu/qemu-native.inc | |||
@@ -3,8 +3,8 @@ inherit native | |||
3 | require qemu.inc | 3 | require qemu.inc |
4 | 4 | ||
5 | SRC_URI_append = " \ | 5 | SRC_URI_append = " \ |
6 | file://0010-fix-libcap-header-issue-on-some-distro.patch \ | 6 | file://0012-fix-libcap-header-issue-on-some-distro.patch \ |
7 | file://0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \ | 7 | file://0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \ |
8 | " | 8 | " |
9 | 9 | ||
10 | EXTRA_OEMAKE_append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'" | 10 | EXTRA_OEMAKE_append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'" |
diff --git a/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb b/meta/recipes-devtools/qemu/qemu-native_4.2.0.bb index c8acff8e19..c8acff8e19 100644 --- a/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb +++ b/meta/recipes-devtools/qemu/qemu-native_4.2.0.bb | |||
diff --git a/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb index d83ee59375..d83ee59375 100644 --- a/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb +++ b/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb | |||
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index eb9f060997..a557e74e97 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc | |||
@@ -27,14 +27,13 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ | |||
27 | file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \ | 27 | file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \ |
28 | file://0009-Fix-webkitgtk-builds.patch \ | 28 | file://0009-Fix-webkitgtk-builds.patch \ |
29 | file://0010-configure-Add-pkg-config-handling-for-libgcrypt.patch \ | 29 | file://0010-configure-Add-pkg-config-handling-for-libgcrypt.patch \ |
30 | file://0011-linux-user-remove-host-stime-syscall.patch \ | 30 | file://0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch \ |
31 | file://CVE-2019-15890.patch \ | 31 | file://CVE-2019-15890.patch \ |
32 | file://CVE-2019-12068.patch \ | ||
33 | " | 32 | " |
34 | UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" | 33 | UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" |
35 | 34 | ||
36 | SRC_URI[md5sum] = "cdf2b5ca52b9abac9bacb5842fa420f8" | 35 | SRC_URI[md5sum] = "278eeb294e4b497e79af7a57e660cb9a" |
37 | SRC_URI[sha256sum] = "656e60218689bdeec69903087fd7582d5d3e72238d02f4481d8dc6d79fd909c6" | 36 | SRC_URI[sha256sum] = "d3481d4108ce211a053ef15be69af1bdd9dde1510fda80d92be0f6c3e98768f0" |
38 | 37 | ||
39 | COMPATIBLE_HOST_mipsarchn32 = "null" | 38 | COMPATIBLE_HOST_mipsarchn32 = "null" |
40 | COMPATIBLE_HOST_mipsarchn64 = "null" | 39 | COMPATIBLE_HOST_mipsarchn64 = "null" |
diff --git a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch index 9478102ae5..66ff996508 100644 --- a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch +++ b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 4655dc18074e0be9d239f51dac32b61435da8549 Mon Sep 17 00:00:00 2001 | 1 | From 526cb7e26f6dd96c9ee2ffa05ce0a358d3bfbfb3 Mon Sep 17 00:00:00 2001 |
2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | 2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> |
3 | Date: Thu, 27 Nov 2014 14:04:29 +0000 | 3 | Date: Thu, 27 Nov 2014 14:04:29 +0000 |
4 | Subject: [PATCH] qemu: Add missing wacom HID descriptor | 4 | Subject: [PATCH] qemu: Add missing wacom HID descriptor |
@@ -19,7 +19,7 @@ Upstream-Status: Submitted | |||
19 | 1 file changed, 93 insertions(+), 1 deletion(-) | 19 | 1 file changed, 93 insertions(+), 1 deletion(-) |
20 | 20 | ||
21 | diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c | 21 | diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c |
22 | index 8c43db93..3ff8ca28 100644 | 22 | index 8ed57b3b..1502928b 100644 |
23 | --- a/hw/usb/dev-wacom.c | 23 | --- a/hw/usb/dev-wacom.c |
24 | +++ b/hw/usb/dev-wacom.c | 24 | +++ b/hw/usb/dev-wacom.c |
25 | @@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = { | 25 | @@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = { |
diff --git a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch index 2ccddd53cf..7f7da51006 100644 --- a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch +++ b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 67751f3a23e3db3012f391b3b3b73a4484488ce9 Mon Sep 17 00:00:00 2001 | 1 | From 8ee6281516bd9210e75e91d705da8916bab3bf51 Mon Sep 17 00:00:00 2001 |
2 | From: Juro Bystricky <juro.bystricky@intel.com> | 2 | From: Juro Bystricky <juro.bystricky@intel.com> |
3 | Date: Thu, 31 Aug 2017 11:06:56 -0700 | 3 | Date: Thu, 31 Aug 2017 11:06:56 -0700 |
4 | Subject: [PATCH] Add subpackage -ptest which runs all unit test cases for | 4 | Subject: [PATCH] Add subpackage -ptest which runs all unit test cases for |
@@ -15,10 +15,10 @@ Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> | |||
15 | 1 file changed, 8 insertions(+) | 15 | 1 file changed, 8 insertions(+) |
16 | 16 | ||
17 | diff --git a/tests/Makefile.include b/tests/Makefile.include | 17 | diff --git a/tests/Makefile.include b/tests/Makefile.include |
18 | index fd7fdb86..83b7f409 100644 | 18 | index 8566f5f1..52d0320b 100644 |
19 | --- a/tests/Makefile.include | 19 | --- a/tests/Makefile.include |
20 | +++ b/tests/Makefile.include | 20 | +++ b/tests/Makefile.include |
21 | @@ -1183,4 +1183,12 @@ all: $(QEMU_IOTESTS_HELPERS-y) | 21 | @@ -1210,4 +1210,12 @@ all: $(QEMU_IOTESTS_HELPERS-y) |
22 | -include $(wildcard tests/*.d) | 22 | -include $(wildcard tests/*.d) |
23 | -include $(wildcard tests/libqos/*.d) | 23 | -include $(wildcard tests/libqos/*.d) |
24 | 24 | ||
diff --git a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch index 5c42d68030..012d60d8f0 100644 --- a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch +++ b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 235b94f1188597873c8776b019fed49947983392 Mon Sep 17 00:00:00 2001 | 1 | From ce1eceab2350d27960ec254650717085f6a11c9a Mon Sep 17 00:00:00 2001 |
2 | From: Jason Wessel <jason.wessel@windriver.com> | 2 | From: Jason Wessel <jason.wessel@windriver.com> |
3 | Date: Fri, 28 Mar 2014 17:42:43 +0800 | 3 | Date: Fri, 28 Mar 2014 17:42:43 +0800 |
4 | Subject: [PATCH] qemu: Add addition environment space to boot loader | 4 | Subject: [PATCH] qemu: Add addition environment space to boot loader |
@@ -19,15 +19,15 @@ Signed-off-by: Roy Li <rongqing.li@windriver.com> | |||
19 | 1 file changed, 1 insertion(+), 1 deletion(-) | 19 | 1 file changed, 1 insertion(+), 1 deletion(-) |
20 | 20 | ||
21 | diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c | 21 | diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c |
22 | index 20e019bf..d150b01c 100644 | 22 | index 92e9ca5b..3a7f3954 100644 |
23 | --- a/hw/mips/mips_malta.c | 23 | --- a/hw/mips/mips_malta.c |
24 | +++ b/hw/mips/mips_malta.c | 24 | +++ b/hw/mips/mips_malta.c |
25 | @@ -60,7 +60,7 @@ | 25 | @@ -59,7 +59,7 @@ |
26 | 26 | ||
27 | #define ENVP_ADDR 0x80002000l | 27 | #define ENVP_ADDR 0x80002000l |
28 | #define ENVP_NB_ENTRIES 16 | 28 | #define ENVP_NB_ENTRIES 16 |
29 | -#define ENVP_ENTRY_SIZE 256 | 29 | -#define ENVP_ENTRY_SIZE 256 |
30 | +#define ENVP_ENTRY_SIZE 1024 | 30 | +#define ENVP_ENTRY_SIZE 1024 |
31 | 31 | ||
32 | /* Hardware addresses */ | 32 | /* Hardware addresses */ |
33 | #define FLASH_ADDRESS 0x1e000000ULL | 33 | #define FLASH_ADDRESS 0x1e000000ULL |
diff --git a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch index 0ac4ab40b1..bc30397e8c 100644 --- a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch +++ b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 3ad7a375015d47fdf5016e03e11fa93440d6d8bd Mon Sep 17 00:00:00 2001 | 1 | From 4127296bb1046cdf73994ba69dc913d8c02fd74f Mon Sep 17 00:00:00 2001 |
2 | From: Ross Burton <ross.burton@intel.com> | 2 | From: Ross Burton <ross.burton@intel.com> |
3 | Date: Tue, 20 Oct 2015 22:19:08 +0100 | 3 | Date: Tue, 20 Oct 2015 22:19:08 +0100 |
4 | Subject: [PATCH] qemu: disable Valgrind | 4 | Subject: [PATCH] qemu: disable Valgrind |
@@ -13,10 +13,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com> | |||
13 | 1 file changed, 9 deletions(-) | 13 | 1 file changed, 9 deletions(-) |
14 | 14 | ||
15 | diff --git a/configure b/configure | 15 | diff --git a/configure b/configure |
16 | index 714e7fb6..dad4fc59 100755 | 16 | index 6099be1d..a766017b 100755 |
17 | --- a/configure | 17 | --- a/configure |
18 | +++ b/configure | 18 | +++ b/configure |
19 | @@ -5335,15 +5335,6 @@ fi | 19 | @@ -5390,15 +5390,6 @@ fi |
20 | # check if we have valgrind/valgrind.h | 20 | # check if we have valgrind/valgrind.h |
21 | 21 | ||
22 | valgrind_h=no | 22 | valgrind_h=no |
diff --git a/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch index a73681510e..ec303371b0 100644 --- a/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch +++ b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 80e6070bcdfe636b103a13598e6c38ad0d0e7624 Mon Sep 17 00:00:00 2001 | 1 | From 6cdf82af2eba312b9b8da86dda28b98d3d51f4d4 Mon Sep 17 00:00:00 2001 |
2 | From: Stephen Arnold <sarnold@vctlabs.com> | 2 | From: Stephen Arnold <sarnold@vctlabs.com> |
3 | Date: Sun, 12 Jun 2016 18:09:56 -0700 | 3 | Date: Sun, 12 Jun 2016 18:09:56 -0700 |
4 | Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment | 4 | Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment |
@@ -10,10 +10,10 @@ Upstream-Status: Pending | |||
10 | 1 file changed, 4 deletions(-) | 10 | 1 file changed, 4 deletions(-) |
11 | 11 | ||
12 | diff --git a/configure b/configure | 12 | diff --git a/configure b/configure |
13 | index dad4fc59..685bbe5e 100755 | 13 | index a766017b..72f11aca 100755 |
14 | --- a/configure | 14 | --- a/configure |
15 | +++ b/configure | 15 | +++ b/configure |
16 | @@ -5971,10 +5971,6 @@ write_c_skeleton | 16 | @@ -6085,10 +6085,6 @@ write_c_skeleton |
17 | if test "$gcov" = "yes" ; then | 17 | if test "$gcov" = "yes" ; then |
18 | CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS" | 18 | CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS" |
19 | LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS" | 19 | LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS" |
diff --git a/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch index a42385530f..0810ae84c0 100644 --- a/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch +++ b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From ad853601e75f6d0dd09672bcca05fbe4fac766a4 Mon Sep 17 00:00:00 2001 | 1 | From bcc63f775e265df69963a4ad7805b8678ace68f0 Mon Sep 17 00:00:00 2001 |
2 | From: Alistair Francis <alistair.francis@xilinx.com> | 2 | From: Alistair Francis <alistair.francis@xilinx.com> |
3 | Date: Thu, 21 Dec 2017 11:35:16 -0800 | 3 | Date: Thu, 21 Dec 2017 11:35:16 -0800 |
4 | Subject: [PATCH] chardev: connect socket to a spawned command | 4 | Subject: [PATCH] chardev: connect socket to a spawned command |
@@ -52,10 +52,10 @@ Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> | |||
52 | 3 files changed, 109 insertions(+) | 52 | 3 files changed, 109 insertions(+) |
53 | 53 | ||
54 | diff --git a/chardev/char-socket.c b/chardev/char-socket.c | 54 | diff --git a/chardev/char-socket.c b/chardev/char-socket.c |
55 | index 7ca5d97a..207fae4a 100644 | 55 | index 185fe38d..54fa4234 100644 |
56 | --- a/chardev/char-socket.c | 56 | --- a/chardev/char-socket.c |
57 | +++ b/chardev/char-socket.c | 57 | +++ b/chardev/char-socket.c |
58 | @@ -1278,6 +1278,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock, | 58 | @@ -1288,6 +1288,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock, |
59 | return true; | 59 | return true; |
60 | } | 60 | } |
61 | 61 | ||
@@ -123,7 +123,7 @@ index 7ca5d97a..207fae4a 100644 | |||
123 | 123 | ||
124 | static void qmp_chardev_open_socket(Chardev *chr, | 124 | static void qmp_chardev_open_socket(Chardev *chr, |
125 | ChardevBackend *backend, | 125 | ChardevBackend *backend, |
126 | @@ -1286,6 +1347,9 @@ static void qmp_chardev_open_socket(Chardev *chr, | 126 | @@ -1296,6 +1357,9 @@ static void qmp_chardev_open_socket(Chardev *chr, |
127 | { | 127 | { |
128 | SocketChardev *s = SOCKET_CHARDEV(chr); | 128 | SocketChardev *s = SOCKET_CHARDEV(chr); |
129 | ChardevSocket *sock = backend->u.socket.data; | 129 | ChardevSocket *sock = backend->u.socket.data; |
@@ -133,7 +133,7 @@ index 7ca5d97a..207fae4a 100644 | |||
133 | bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; | 133 | bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; |
134 | bool is_listen = sock->has_server ? sock->server : true; | 134 | bool is_listen = sock->has_server ? sock->server : true; |
135 | bool is_telnet = sock->has_telnet ? sock->telnet : false; | 135 | bool is_telnet = sock->has_telnet ? sock->telnet : false; |
136 | @@ -1351,6 +1415,14 @@ static void qmp_chardev_open_socket(Chardev *chr, | 136 | @@ -1361,6 +1425,14 @@ static void qmp_chardev_open_socket(Chardev *chr, |
137 | 137 | ||
138 | update_disconnected_filename(s); | 138 | update_disconnected_filename(s); |
139 | 139 | ||
@@ -148,7 +148,7 @@ index 7ca5d97a..207fae4a 100644 | |||
148 | if (s->is_listen) { | 148 | if (s->is_listen) { |
149 | if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270, | 149 | if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270, |
150 | is_waitconnect, errp) < 0) { | 150 | is_waitconnect, errp) < 0) { |
151 | @@ -1370,9 +1442,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, | 151 | @@ -1380,9 +1452,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, |
152 | const char *host = qemu_opt_get(opts, "host"); | 152 | const char *host = qemu_opt_get(opts, "host"); |
153 | const char *port = qemu_opt_get(opts, "port"); | 153 | const char *port = qemu_opt_get(opts, "port"); |
154 | const char *fd = qemu_opt_get(opts, "fd"); | 154 | const char *fd = qemu_opt_get(opts, "fd"); |
@@ -175,7 +175,7 @@ index 7ca5d97a..207fae4a 100644 | |||
175 | if ((!!path + !!fd + !!host) != 1) { | 175 | if ((!!path + !!fd + !!host) != 1) { |
176 | error_setg(errp, | 176 | error_setg(errp, |
177 | "Exactly one of 'path', 'fd' or 'host' required"); | 177 | "Exactly one of 'path', 'fd' or 'host' required"); |
178 | @@ -1415,12 +1504,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, | 178 | @@ -1425,12 +1514,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, |
179 | sock->has_tls_authz = qemu_opt_get(opts, "tls-authz"); | 179 | sock->has_tls_authz = qemu_opt_get(opts, "tls-authz"); |
180 | sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz")); | 180 | sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz")); |
181 | 181 | ||
diff --git a/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch index b50e8c2545..89baad9b7f 100644 --- a/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch +++ b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From f51e49e7d7d87b7254242b7360f99c2df94a5a2d Mon Sep 17 00:00:00 2001 | 1 | From a59a98d100123030a4145e7efe3b8a001920a9f1 Mon Sep 17 00:00:00 2001 |
2 | From: Mark Asselstine <mark.asselstine@windriver.com> | 2 | From: Mark Asselstine <mark.asselstine@windriver.com> |
3 | Date: Tue, 26 Feb 2013 11:43:28 -0500 | 3 | Date: Tue, 26 Feb 2013 11:43:28 -0500 |
4 | Subject: [PATCH] apic: fixup fallthrough to PIC | 4 | Subject: [PATCH] apic: fixup fallthrough to PIC |
@@ -30,7 +30,7 @@ Signed-off-by: He Zhe <zhe.he@windriver.com> | |||
30 | 1 file changed, 1 insertion(+), 1 deletion(-) | 30 | 1 file changed, 1 insertion(+), 1 deletion(-) |
31 | 31 | ||
32 | diff --git a/hw/intc/apic.c b/hw/intc/apic.c | 32 | diff --git a/hw/intc/apic.c b/hw/intc/apic.c |
33 | index bce89911..df4b582e 100644 | 33 | index 2a74f7b4..4d5da365 100644 |
34 | --- a/hw/intc/apic.c | 34 | --- a/hw/intc/apic.c |
35 | +++ b/hw/intc/apic.c | 35 | +++ b/hw/intc/apic.c |
36 | @@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev) | 36 | @@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev) |
diff --git a/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch index e562f25bec..30bb4ddf26 100644 --- a/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch +++ b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 25a064f91f73630e5dff2a6aeb23d953c469cea6 Mon Sep 17 00:00:00 2001 | 1 | From cf8c9aac5243f506a1a3e8e284414f311cde04f5 Mon Sep 17 00:00:00 2001 |
2 | From: Alistair Francis <alistair.francis@xilinx.com> | 2 | From: Alistair Francis <alistair.francis@xilinx.com> |
3 | Date: Wed, 17 Jan 2018 10:51:49 -0800 | 3 | Date: Wed, 17 Jan 2018 10:51:49 -0800 |
4 | Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target | 4 | Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target |
@@ -19,15 +19,15 @@ Signed-off-by: Alistair Francis <alistair.francis@xilinx.com> | |||
19 | 1 file changed, 1 insertion(+), 1 deletion(-) | 19 | 1 file changed, 1 insertion(+), 1 deletion(-) |
20 | 20 | ||
21 | diff --git a/linux-user/main.c b/linux-user/main.c | 21 | diff --git a/linux-user/main.c b/linux-user/main.c |
22 | index 8ffc5251..4067e739 100644 | 22 | index 6ff7851e..ebff0485 100644 |
23 | --- a/linux-user/main.c | 23 | --- a/linux-user/main.c |
24 | +++ b/linux-user/main.c | 24 | +++ b/linux-user/main.c |
25 | @@ -77,7 +77,7 @@ int have_guest_base; | 25 | @@ -78,7 +78,7 @@ int have_guest_base; |
26 | (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32)) | 26 | (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32)) |
27 | /* There are a number of places where we assign reserved_va to a variable | 27 | /* There are a number of places where we assign reserved_va to a variable |
28 | of type abi_ulong and expect it to fit. Avoid the last page. */ | 28 | of type abi_ulong and expect it to fit. Avoid the last page. */ |
29 | -# define MAX_RESERVED_VA (0xfffffffful & TARGET_PAGE_MASK) | 29 | -# define MAX_RESERVED_VA(CPU) (0xfffffffful & TARGET_PAGE_MASK) |
30 | +# define MAX_RESERVED_VA (0x7ffffffful & TARGET_PAGE_MASK) | 30 | +# define MAX_RESERVED_VA(CPU) (0x7ffffffful & TARGET_PAGE_MASK) |
31 | # else | 31 | # else |
32 | # define MAX_RESERVED_VA (1ul << TARGET_VIRT_ADDR_SPACE_BITS) | 32 | # define MAX_RESERVED_VA(CPU) (1ul << TARGET_VIRT_ADDR_SPACE_BITS) |
33 | # endif | 33 | # endif |
diff --git a/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch b/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch index 4072d9455f..7e273eeced 100644 --- a/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch +++ b/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From b633b9a1813fcd715dce44659a89293f1c64ae8c Mon Sep 17 00:00:00 2001 | 1 | From 613166007e3b852c99caf2cd34a972e2c8460737 Mon Sep 17 00:00:00 2001 |
2 | From: Martin Jansa <martin.jansa@lge.com> | 2 | From: Martin Jansa <martin.jansa@lge.com> |
3 | Date: Fri, 1 Jun 2018 08:41:07 +0000 | 3 | Date: Fri, 1 Jun 2018 08:41:07 +0000 |
4 | Subject: [PATCH] Fix webkitgtk builds | 4 | Subject: [PATCH] Fix webkitgtk builds |
@@ -18,6 +18,7 @@ This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583. | |||
18 | 18 | ||
19 | Upstream-Status: Pending | 19 | Upstream-Status: Pending |
20 | Signed-off-by: Alistair Francis <alistair.francis@wdc.com> | 20 | Signed-off-by: Alistair Francis <alistair.francis@wdc.com> |
21 | |||
21 | --- | 22 | --- |
22 | include/exec/cpu-all.h | 6 +----- | 23 | include/exec/cpu-all.h | 6 +----- |
23 | include/exec/cpu_ldst.h | 5 ++++- | 24 | include/exec/cpu_ldst.h | 5 ++++- |
@@ -26,7 +27,7 @@ Signed-off-by: Alistair Francis <alistair.francis@wdc.com> | |||
26 | 4 files changed, 10 insertions(+), 23 deletions(-) | 27 | 4 files changed, 10 insertions(+), 23 deletions(-) |
27 | 28 | ||
28 | diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h | 29 | diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h |
29 | index 536ea58f81..4c63a6a2e4 100644 | 30 | index e96781a4..a369f81a 100644 |
30 | --- a/include/exec/cpu-all.h | 31 | --- a/include/exec/cpu-all.h |
31 | +++ b/include/exec/cpu-all.h | 32 | +++ b/include/exec/cpu-all.h |
32 | @@ -162,12 +162,8 @@ extern unsigned long guest_base; | 33 | @@ -162,12 +162,8 @@ extern unsigned long guest_base; |
@@ -44,7 +45,7 @@ index 536ea58f81..4c63a6a2e4 100644 | |||
44 | 45 | ||
45 | #include "exec/hwaddr.h" | 46 | #include "exec/hwaddr.h" |
46 | diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h | 47 | diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h |
47 | index 9151fdb042..cb2b8f329f 100644 | 48 | index fd499f7e..30575f60 100644 |
48 | --- a/include/exec/cpu_ldst.h | 49 | --- a/include/exec/cpu_ldst.h |
49 | +++ b/include/exec/cpu_ldst.h | 50 | +++ b/include/exec/cpu_ldst.h |
50 | @@ -65,7 +65,10 @@ typedef uint64_t abi_ptr; | 51 | @@ -65,7 +65,10 @@ typedef uint64_t abi_ptr; |
@@ -60,7 +61,7 @@ index 9151fdb042..cb2b8f329f 100644 | |||
60 | #define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base) | 61 | #define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base) |
61 | 62 | ||
62 | diff --git a/linux-user/mmap.c b/linux-user/mmap.c | 63 | diff --git a/linux-user/mmap.c b/linux-user/mmap.c |
63 | index 46a6e3a761..7735465462 100644 | 64 | index 46a6e3a7..77354654 100644 |
64 | --- a/linux-user/mmap.c | 65 | --- a/linux-user/mmap.c |
65 | +++ b/linux-user/mmap.c | 66 | +++ b/linux-user/mmap.c |
66 | @@ -78,7 +78,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot) | 67 | @@ -78,7 +78,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot) |
@@ -110,10 +111,10 @@ index 46a6e3a761..7735465462 100644 | |||
110 | 111 | ||
111 | if (flags & MREMAP_FIXED) { | 112 | if (flags & MREMAP_FIXED) { |
112 | diff --git a/linux-user/syscall.c b/linux-user/syscall.c | 113 | diff --git a/linux-user/syscall.c b/linux-user/syscall.c |
113 | index 8b41a03901..bc5d85de02 100644 | 114 | index 171c0cae..fc18f244 100644 |
114 | --- a/linux-user/syscall.c | 115 | --- a/linux-user/syscall.c |
115 | +++ b/linux-user/syscall.c | 116 | +++ b/linux-user/syscall.c |
116 | @@ -4031,9 +4031,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env, | 117 | @@ -4138,9 +4138,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env, |
117 | return -TARGET_EINVAL; | 118 | return -TARGET_EINVAL; |
118 | } | 119 | } |
119 | } | 120 | } |
@@ -123,7 +124,7 @@ index 8b41a03901..bc5d85de02 100644 | |||
123 | 124 | ||
124 | mmap_lock(); | 125 | mmap_lock(); |
125 | 126 | ||
126 | @@ -6881,7 +6878,7 @@ static int open_self_maps(void *cpu_env, int fd) | 127 | @@ -6990,7 +6987,7 @@ static int open_self_maps(void *cpu_env, int fd) |
127 | } | 128 | } |
128 | if (h2g_valid(min)) { | 129 | if (h2g_valid(min)) { |
129 | int flags = page_get_flags(h2g(min)); | 130 | int flags = page_get_flags(h2g(min)); |
@@ -132,6 +133,3 @@ index 8b41a03901..bc5d85de02 100644 | |||
132 | if (page_check_range(h2g(min), max - min, flags) == -1) { | 133 | if (page_check_range(h2g(min), max - min, flags) == -1) { |
133 | continue; | 134 | continue; |
134 | } | 135 | } |
135 | -- | ||
136 | 2.22.0 | ||
137 | |||
diff --git a/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch b/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch index a8ab7daa42..34df78b7fe 100644 --- a/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch +++ b/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch | |||
@@ -1,7 +1,7 @@ | |||
1 | From 5214dd4461f2090ef0965b4d2518f49927d61cbc Mon Sep 17 00:00:00 2001 | 1 | From c207607cdf3996ad9783c3bffbcd3d65e74c0158 Mon Sep 17 00:00:00 2001 |
2 | From: He Zhe <zhe.he@windriver.com> | 2 | From: He Zhe <zhe.he@windriver.com> |
3 | Date: Wed, 28 Aug 2019 19:56:28 +0800 | 3 | Date: Wed, 28 Aug 2019 19:56:28 +0800 |
4 | Subject: [Qemu-devel] [PATCH] configure: Add pkg-config handling for libgcrypt | 4 | Subject: [PATCH] configure: Add pkg-config handling for libgcrypt |
5 | 5 | ||
6 | libgcrypt may also be controlled by pkg-config, this patch adds pkg-config | 6 | libgcrypt may also be controlled by pkg-config, this patch adds pkg-config |
7 | handling for libgcrypt. | 7 | handling for libgcrypt. |
@@ -9,12 +9,13 @@ handling for libgcrypt. | |||
9 | Upstream-Status: Denied [https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg06333.html] | 9 | Upstream-Status: Denied [https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg06333.html] |
10 | 10 | ||
11 | Signed-off-by: He Zhe <zhe.he@windriver.com> | 11 | Signed-off-by: He Zhe <zhe.he@windriver.com> |
12 | |||
12 | --- | 13 | --- |
13 | configure | 48 ++++++++++++++++++++++++++++++++++++++++-------- | 14 | configure | 48 ++++++++++++++++++++++++++++++++++++++++-------- |
14 | 1 file changed, 40 insertions(+), 8 deletions(-) | 15 | 1 file changed, 40 insertions(+), 8 deletions(-) |
15 | 16 | ||
16 | diff --git a/configure b/configure | 17 | diff --git a/configure b/configure |
17 | index e44e454..0f362a7 100755 | 18 | index 72f11aca..cac271ce 100755 |
18 | --- a/configure | 19 | --- a/configure |
19 | +++ b/configure | 20 | +++ b/configure |
20 | @@ -2875,6 +2875,30 @@ has_libgcrypt() { | 21 | @@ -2875,6 +2875,30 @@ has_libgcrypt() { |
@@ -48,7 +49,7 @@ index e44e454..0f362a7 100755 | |||
48 | 49 | ||
49 | if test "$nettle" != "no"; then | 50 | if test "$nettle" != "no"; then |
50 | pass="no" | 51 | pass="no" |
51 | @@ -2902,7 +2926,14 @@ fi | 52 | @@ -2915,7 +2939,14 @@ fi |
52 | 53 | ||
53 | if test "$gcrypt" != "no"; then | 54 | if test "$gcrypt" != "no"; then |
54 | pass="no" | 55 | pass="no" |
@@ -64,7 +65,7 @@ index e44e454..0f362a7 100755 | |||
64 | gcrypt_cflags=$(libgcrypt-config --cflags) | 65 | gcrypt_cflags=$(libgcrypt-config --cflags) |
65 | gcrypt_libs=$(libgcrypt-config --libs) | 66 | gcrypt_libs=$(libgcrypt-config --libs) |
66 | # Debian has removed -lgpg-error from libgcrypt-config | 67 | # Debian has removed -lgpg-error from libgcrypt-config |
67 | @@ -2912,15 +2943,16 @@ if test "$gcrypt" != "no"; then | 68 | @@ -2925,15 +2956,16 @@ if test "$gcrypt" != "no"; then |
68 | then | 69 | then |
69 | gcrypt_libs="$gcrypt_libs -lgpg-error" | 70 | gcrypt_libs="$gcrypt_libs -lgpg-error" |
70 | fi | 71 | fi |
@@ -88,6 +89,3 @@ index e44e454..0f362a7 100755 | |||
88 | if test "$pass" = "yes"; then | 89 | if test "$pass" = "yes"; then |
89 | gcrypt="yes" | 90 | gcrypt="yes" |
90 | cat > $TMPC << EOF | 91 | cat > $TMPC << EOF |
91 | -- | ||
92 | 2.7.4 | ||
93 | |||
diff --git a/meta/recipes-devtools/qemu/qemu/0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch b/meta/recipes-devtools/qemu/qemu/0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch new file mode 100644 index 0000000000..2fe0850a33 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu/0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch | |||
@@ -0,0 +1,54 @@ | |||
1 | From a88c40f02ace88f09b2a85a64831b277b2ebc88c Mon Sep 17 00:00:00 2001 | ||
2 | From: Peter Wu <peter@lekensteyn.nl> | ||
3 | Date: Sat, 21 Dec 2019 17:21:24 +0100 | ||
4 | Subject: [PATCH] hw/i386/pc: fix regression in parsing vga cmdline parameter | ||
5 | |||
6 | When the 'vga=' parameter is succeeded by another parameter, QEMU 4.2.0 | ||
7 | would refuse to start with a rather cryptic message: | ||
8 | |||
9 | $ qemu-system-x86_64 -kernel /boot/vmlinuz-linux -append 'vga=792 quiet' | ||
10 | qemu: can't parse 'vga' parameter: Invalid argument | ||
11 | |||
12 | It was not clear whether this applied to the '-vga std' parameter or the | ||
13 | '-append' one. Fix the parsing regression and clarify the error. | ||
14 | |||
15 | Fixes: 133ef074bd ("hw/i386/pc: replace use of strtol with qemu_strtoui in x86_load_linux()") | ||
16 | Cc: Sergio Lopez <slp@redhat.com> | ||
17 | Signed-off-by: Peter Wu <peter@lekensteyn.nl> | ||
18 | Message-Id: <20191221162124.1159291-1-peter@lekensteyn.nl> | ||
19 | Cc: qemu-stable@nongnu.org | ||
20 | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||
21 | Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a88c40f02ace88f09b2a85a64831b277b2ebc88c] | ||
22 | --- | ||
23 | hw/i386/x86.c | 8 ++++---- | ||
24 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
25 | |||
26 | diff --git a/hw/i386/x86.c b/hw/i386/x86.c | ||
27 | index d8bb5c2a96..9b9a4d5837 100644 | ||
28 | --- a/hw/i386/x86.c | ||
29 | +++ b/hw/i386/x86.c | ||
30 | @@ -612,6 +612,7 @@ void x86_load_linux(X86MachineState *x86ms, | ||
31 | vmode = strstr(kernel_cmdline, "vga="); | ||
32 | if (vmode) { | ||
33 | unsigned int video_mode; | ||
34 | + const char *end; | ||
35 | int ret; | ||
36 | /* skip "vga=" */ | ||
37 | vmode += 4; | ||
38 | @@ -622,10 +623,9 @@ void x86_load_linux(X86MachineState *x86ms, | ||
39 | } else if (!strncmp(vmode, "ask", 3)) { | ||
40 | video_mode = 0xfffd; | ||
41 | } else { | ||
42 | - ret = qemu_strtoui(vmode, NULL, 0, &video_mode); | ||
43 | - if (ret != 0) { | ||
44 | - fprintf(stderr, "qemu: can't parse 'vga' parameter: %s\n", | ||
45 | - strerror(-ret)); | ||
46 | + ret = qemu_strtoui(vmode, &end, 0, &video_mode); | ||
47 | + if (ret != 0 || (*end && *end != ' ')) { | ||
48 | + fprintf(stderr, "qemu: invalid 'vga=' kernel parameter.\n"); | ||
49 | exit(1); | ||
50 | } | ||
51 | } | ||
52 | -- | ||
53 | 2.25.0 | ||
54 | |||
diff --git a/meta/recipes-devtools/qemu/qemu/0011-linux-user-remove-host-stime-syscall.patch b/meta/recipes-devtools/qemu/qemu/0011-linux-user-remove-host-stime-syscall.patch deleted file mode 100644 index 659e6be45d..0000000000 --- a/meta/recipes-devtools/qemu/qemu/0011-linux-user-remove-host-stime-syscall.patch +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | From 0f1f2d4596aee037d3ccbcf10592466daa54107f Mon Sep 17 00:00:00 2001 | ||
2 | From: Laurent Vivier <laurent@vivier.eu> | ||
3 | Date: Tue, 12 Nov 2019 15:25:56 +0100 | ||
4 | Subject: [PATCH] linux-user: remove host stime() syscall | ||
5 | |||
6 | stime() has been withdrawn from glibc | ||
7 | (12cbde1dae6f "Use clock_settime to implement stime; withdraw stime.") | ||
8 | |||
9 | Implement the target stime() syscall using host | ||
10 | clock_settime(CLOCK_REALTIME, ...) as it is done internally in glibc. | ||
11 | |||
12 | Tested qemu-ppc/x86_64 with: | ||
13 | |||
14 | #include <time.h> | ||
15 | #include <stdio.h> | ||
16 | |||
17 | int main(void) | ||
18 | { | ||
19 | time_t t; | ||
20 | int ret; | ||
21 | |||
22 | /* date -u -d"2019-11-12T15:11:00" "+%s" */ | ||
23 | t = 1573571460; | ||
24 | ret = stime(&t); | ||
25 | printf("ret %d\n", ret); | ||
26 | return 0; | ||
27 | } | ||
28 | |||
29 | # date; ./stime; date | ||
30 | Tue Nov 12 14:18:32 UTC 2019 | ||
31 | ret 0 | ||
32 | Tue Nov 12 15:11:00 UTC 2019 | ||
33 | |||
34 | Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commit;h=0f1f2d4596aee037d3ccbcf10592466daa54107f] | ||
35 | Buglink: https://bugs.launchpad.net/qemu/+bug/1852115 | ||
36 | Reported-by: Cole Robinson <crobinso@redhat.com> | ||
37 | Signed-off-by: Laurent Vivier <laurent@vivier.eu> | ||
38 | Reviewed-by: Peter Maydell <peter.maydell@linaro.org> | ||
39 | Message-Id: <20191112142556.6335-1-laurent@vivier.eu> | ||
40 | --- | ||
41 | linux-user/syscall.c | 8 +++++--- | ||
42 | 1 file changed, 5 insertions(+), 3 deletions(-) | ||
43 | |||
44 | --- a/linux-user/syscall.c | ||
45 | +++ b/linux-user/syscall.c | ||
46 | @@ -7651,10 +7651,12 @@ static abi_long do_syscall1(void *cpu_en | ||
47 | #ifdef TARGET_NR_stime /* not on alpha */ | ||
48 | case TARGET_NR_stime: | ||
49 | { | ||
50 | - time_t host_time; | ||
51 | - if (get_user_sal(host_time, arg1)) | ||
52 | + struct timespec ts; | ||
53 | + ts.tv_nsec = 0; | ||
54 | + if (get_user_sal(ts.tv_sec, arg1)) { | ||
55 | return -TARGET_EFAULT; | ||
56 | - return get_errno(stime(&host_time)); | ||
57 | + } | ||
58 | + return get_errno(clock_settime(CLOCK_REALTIME, &ts)); | ||
59 | } | ||
60 | #endif | ||
61 | #ifdef TARGET_NR_alarm /* not on alpha */ | ||
diff --git a/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch b/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch index 3a7d7bbd33..3a7d7bbd33 100644 --- a/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch +++ b/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch | |||
diff --git a/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch index e5ebfc1267..e5ebfc1267 100644 --- a/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch +++ b/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch | |||
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch b/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch deleted file mode 100644 index f1655e407f..0000000000 --- a/meta/recipes-devtools/qemu/qemu/CVE-2019-12068.patch +++ /dev/null | |||
@@ -1,108 +0,0 @@ | |||
1 | From de594e47659029316bbf9391efb79da0a1a08e08 Mon Sep 17 00:00:00 2001 | ||
2 | From: Paolo Bonzini <pbonzini@redhat.com> | ||
3 | Date: Wed, 14 Aug 2019 17:35:21 +0530 | ||
4 | Subject: [PATCH] scsi: lsi: exit infinite loop while executing script | ||
5 | (CVE-2019-12068) | ||
6 | |||
7 | When executing script in lsi_execute_script(), the LSI scsi adapter | ||
8 | emulator advances 's->dsp' index to read next opcode. This can lead | ||
9 | to an infinite loop if the next opcode is empty. Move the existing | ||
10 | loop exit after 10k iterations so that it covers no-op opcodes as | ||
11 | well. | ||
12 | |||
13 | Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commit;h=de594e47659029316bbf9391efb79da0a1a08e08] | ||
14 | CVE: CVE-2019-12068 | ||
15 | |||
16 | Reported-by: Bugs SysSec <bugs-syssec@rub.de> | ||
17 | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||
18 | Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> | ||
19 | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | ||
20 | |||
21 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
22 | --- | ||
23 | hw/scsi/lsi53c895a.c | 41 +++++++++++++++++++++++++++-------------- | ||
24 | 1 file changed, 27 insertions(+), 14 deletions(-) | ||
25 | |||
26 | diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c | ||
27 | index 222a286..ec53b14 100644 | ||
28 | --- a/hw/scsi/lsi53c895a.c | ||
29 | +++ b/hw/scsi/lsi53c895a.c | ||
30 | @@ -186,6 +186,9 @@ static const char *names[] = { | ||
31 | /* Flag set if this is a tagged command. */ | ||
32 | #define LSI_TAG_VALID (1 << 16) | ||
33 | |||
34 | +/* Maximum instructions to process. */ | ||
35 | +#define LSI_MAX_INSN 10000 | ||
36 | + | ||
37 | typedef struct lsi_request { | ||
38 | SCSIRequest *req; | ||
39 | uint32_t tag; | ||
40 | @@ -1133,7 +1136,21 @@ static void lsi_execute_script(LSIState *s) | ||
41 | |||
42 | s->istat1 |= LSI_ISTAT1_SRUN; | ||
43 | again: | ||
44 | - insn_processed++; | ||
45 | + if (++insn_processed > LSI_MAX_INSN) { | ||
46 | + /* Some windows drivers make the device spin waiting for a memory | ||
47 | + location to change. If we have been executed a lot of code then | ||
48 | + assume this is the case and force an unexpected device disconnect. | ||
49 | + This is apparently sufficient to beat the drivers into submission. | ||
50 | + */ | ||
51 | + if (!(s->sien0 & LSI_SIST0_UDC)) { | ||
52 | + qemu_log_mask(LOG_GUEST_ERROR, | ||
53 | + "lsi_scsi: inf. loop with UDC masked"); | ||
54 | + } | ||
55 | + lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0); | ||
56 | + lsi_disconnect(s); | ||
57 | + trace_lsi_execute_script_stop(); | ||
58 | + return; | ||
59 | + } | ||
60 | insn = read_dword(s, s->dsp); | ||
61 | if (!insn) { | ||
62 | /* If we receive an empty opcode increment the DSP by 4 bytes | ||
63 | @@ -1570,19 +1587,7 @@ again: | ||
64 | } | ||
65 | } | ||
66 | } | ||
67 | - if (insn_processed > 10000 && s->waiting == LSI_NOWAIT) { | ||
68 | - /* Some windows drivers make the device spin waiting for a memory | ||
69 | - location to change. If we have been executed a lot of code then | ||
70 | - assume this is the case and force an unexpected device disconnect. | ||
71 | - This is apparently sufficient to beat the drivers into submission. | ||
72 | - */ | ||
73 | - if (!(s->sien0 & LSI_SIST0_UDC)) { | ||
74 | - qemu_log_mask(LOG_GUEST_ERROR, | ||
75 | - "lsi_scsi: inf. loop with UDC masked"); | ||
76 | - } | ||
77 | - lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0); | ||
78 | - lsi_disconnect(s); | ||
79 | - } else if (s->istat1 & LSI_ISTAT1_SRUN && s->waiting == LSI_NOWAIT) { | ||
80 | + if (s->istat1 & LSI_ISTAT1_SRUN && s->waiting == LSI_NOWAIT) { | ||
81 | if (s->dcntl & LSI_DCNTL_SSM) { | ||
82 | lsi_script_dma_interrupt(s, LSI_DSTAT_SSI); | ||
83 | } else { | ||
84 | @@ -1970,6 +1975,10 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val) | ||
85 | case 0x2f: /* DSP[24:31] */ | ||
86 | s->dsp &= 0x00ffffff; | ||
87 | s->dsp |= val << 24; | ||
88 | + /* | ||
89 | + * FIXME: if s->waiting != LSI_NOWAIT, this will only execute one | ||
90 | + * instruction. Is this correct? | ||
91 | + */ | ||
92 | if ((s->dmode & LSI_DMODE_MAN) == 0 | ||
93 | && (s->istat1 & LSI_ISTAT1_SRUN) == 0) | ||
94 | lsi_execute_script(s); | ||
95 | @@ -1988,6 +1997,10 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val) | ||
96 | break; | ||
97 | case 0x3b: /* DCNTL */ | ||
98 | s->dcntl = val & ~(LSI_DCNTL_PFF | LSI_DCNTL_STD); | ||
99 | + /* | ||
100 | + * FIXME: if s->waiting != LSI_NOWAIT, this will only execute one | ||
101 | + * instruction. Is this correct? | ||
102 | + */ | ||
103 | if ((val & LSI_DCNTL_STD) && (s->istat1 & LSI_ISTAT1_SRUN) == 0) | ||
104 | lsi_execute_script(s); | ||
105 | break; | ||
106 | -- | ||
107 | 2.7.4 | ||
108 | |||
diff --git a/meta/recipes-devtools/qemu/qemu_4.1.0.bb b/meta/recipes-devtools/qemu/qemu_4.2.0.bb index f0c1daabe1..f0c1daabe1 100644 --- a/meta/recipes-devtools/qemu/qemu_4.1.0.bb +++ b/meta/recipes-devtools/qemu/qemu_4.2.0.bb | |||