From cfe4100487dfe5db0986dfb988ea12ece0c266c9 Mon Sep 17 00:00:00 2001 From: Jiabo Feng Date: Mon, 28 Aug 2023 19:20:24 +0800 Subject: [PATCH] QEMU update to version 6.2.0-79(master) - test: Fix test-crypto-secret when compiling without keyring support - aio-posix: fix build failure io_uring 2.2 Signed-off-by: Jiabo Feng (cherry picked from commit 7188b42174badd5ecbb39c74c1eb7f2a94a1832c) --- ...posix-fix-build-failure-io_uring-2.2.patch | 56 +++++++++++++++ qemu.spec | 8 ++- ...ypto-secret-when-compiling-without-k.patch | 72 +++++++++++++++++++ 3 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 aio-posix-fix-build-failure-io_uring-2.2.patch create mode 100644 test-Fix-test-crypto-secret-when-compiling-without-k.patch diff --git a/aio-posix-fix-build-failure-io_uring-2.2.patch b/aio-posix-fix-build-failure-io_uring-2.2.patch new file mode 100644 index 0000000..8096bc1 --- /dev/null +++ b/aio-posix-fix-build-failure-io_uring-2.2.patch @@ -0,0 +1,56 @@ +From f900bc66931458b824274027417b6375610c8d9a Mon Sep 17 00:00:00 2001 +From: Haiyue Wang +Date: Tue, 22 Feb 2022 00:24:01 +0800 +Subject: [PATCH] aio-posix: fix build failure io_uring 2.2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The io_uring fixed "Don't truncate addr fields to 32-bit on 32-bit": +https://git.kernel.dk/cgit/liburing/commit/?id=d84c29b19ed0b130000619cff40141bb1fc3615b + +This leads to build failure: +../util/fdmon-io_uring.c: In function ‘add_poll_remove_sqe’: +../util/fdmon-io_uring.c:182:36: error: passing argument 2 of ‘io_uring_prep_poll_remove’ makes integer from pointer without a cast [-Werror=int-conversion] + 182 | io_uring_prep_poll_remove(sqe, node); + | ^~~~ + | | + | AioHandler * +In file included from /root/io/qemu/include/block/aio.h:18, + from ../util/aio-posix.h:20, + from ../util/fdmon-io_uring.c:49: +/usr/include/liburing.h:415:17: note: expected ‘__u64’ {aka ‘long long unsigned int’} but argument is of type ‘AioHandler *’ + 415 | __u64 user_data) + | ~~~~~~^~~~~~~~~ +cc1: all warnings being treated as errors + +Use LIBURING_HAVE_DATA64 to check whether the io_uring supports 64-bit +variants of the get/set userdata, to convert the paramter to the right +data type. + +Signed-off-by: Haiyue Wang +Message-Id: <20220221162401.45415-1-haiyue.wang@intel.com> +Signed-off-by: Stefan Hajnoczi +--- + util/fdmon-io_uring.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/util/fdmon-io_uring.c b/util/fdmon-io_uring.c +index 1461dfa407..ab43052dd7 100644 +--- a/util/fdmon-io_uring.c ++++ b/util/fdmon-io_uring.c +@@ -179,7 +179,11 @@ static void add_poll_remove_sqe(AioContext *ctx, AioHandler *node) + { + struct io_uring_sqe *sqe = get_sqe(ctx); + ++#ifdef LIBURING_HAVE_DATA64 ++ io_uring_prep_poll_remove(sqe, (__u64)(uintptr_t)node); ++#else + io_uring_prep_poll_remove(sqe, node); ++#endif + } + + /* Add a timeout that self-cancels when another cqe becomes ready */ +-- +2.41.0.windows.1 + diff --git a/qemu.spec b/qemu.spec index 73c9721..e66f84f 100644 --- a/qemu.spec +++ b/qemu.spec @@ -3,7 +3,7 @@ Name: qemu Version: 6.2.0 -Release: 78 +Release: 79 Epoch: 10 Summary: QEMU is a generic and open source machine emulator and virtualizer License: GPLv2 and BSD and MIT and CC-BY-SA-4.0 @@ -553,6 +553,8 @@ Patch0538: qga-Fix-suspend-on-Linux-guests-without-systemd.patch Patch0539: vhost-vdpa-do-not-cleanup-the-vdpa-vhost-net-structu.patch Patch0540: virtio-crypto-verify-src-dst-buffer-length-for-sym-r.patch Patch0541: sw_64-Added-sw64-architecture-related-updates.patch +Patch0542: aio-posix-fix-build-failure-io_uring-2.2.patch +Patch0543: test-Fix-test-crypto-secret-when-compiling-without-k.patch BuildRequires: flex BuildRequires: gcc @@ -1126,6 +1128,10 @@ getent passwd qemu >/dev/null || \ %endif %changelog +* Mon Aug 28 2023 - 10:6.2.0-79 +- test: Fix test-crypto-secret when compiling without keyring support +- aio-posix: fix build failure io_uring 2.2 + * Tue Aug 15 2023 - 10:6.2.0-78 - sw_64: Added sw64 architecture related updates - virtio-crypto: verify src&dst buffer length for sym request diff --git a/test-Fix-test-crypto-secret-when-compiling-without-k.patch b/test-Fix-test-crypto-secret-when-compiling-without-k.patch new file mode 100644 index 0000000..6fc233b --- /dev/null +++ b/test-Fix-test-crypto-secret-when-compiling-without-k.patch @@ -0,0 +1,72 @@ +From edf3134ef2f98c7fd79f54a467631f091e52a980 Mon Sep 17 00:00:00 2001 +From: Juan Quintela +Date: Fri, 14 Apr 2023 13:42:52 +0200 +Subject: [PATCH] test: Fix test-crypto-secret when compiling without keyring + support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Linux keyring support is protected by CONFIG_KEYUTILS. +We also need CONFIG_SECRET_KEYRING. + +Signed-off-by: Juan Quintela +Message-Id: <20230414114252.1136-1-quintela@redhat.com> +Reviewed-by: Daniel P. Berrangé +Signed-off-by: Thomas Huth +--- + tests/unit/test-crypto-secret.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/tests/unit/test-crypto-secret.c b/tests/unit/test-crypto-secret.c +index 34a4aecc12..147b4af828 100644 +--- a/tests/unit/test-crypto-secret.c ++++ b/tests/unit/test-crypto-secret.c +@@ -24,7 +24,7 @@ + #include "crypto/secret.h" + #include "qapi/error.h" + #include "qemu/module.h" +-#ifdef CONFIG_KEYUTILS ++#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING) + #include "crypto/secret_keyring.h" + #include + #endif +@@ -128,7 +128,7 @@ static void test_secret_indirect_emptyfile(void) + g_free(fname); + } + +-#ifdef CONFIG_KEYUTILS ++#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING) + + #define DESCRIPTION "qemu_test_secret" + #define PAYLOAD "Test Payload" +@@ -268,7 +268,7 @@ static void test_secret_keyring_bad_key_access_right(void) + keyctl_unlink(key, KEY_SPEC_PROCESS_KEYRING); + } + +-#endif /* CONFIG_KEYUTILS */ ++#endif /* CONFIG_KEYUTILS && CONFIG_SECRET_KEYRING */ + + static void test_secret_noconv_base64_good(void) + { +@@ -571,7 +571,7 @@ int main(int argc, char **argv) + g_test_add_func("/crypto/secret/indirect/emptyfile", + test_secret_indirect_emptyfile); + +-#ifdef CONFIG_KEYUTILS ++#if defined(CONFIG_KEYUTILS) && defined(CONFIG_SECRET_KEYRING) + g_test_add_func("/crypto/secret/keyring/good", + test_secret_keyring_good); + g_test_add_func("/crypto/secret/keyring/revoked_key", +@@ -582,7 +582,7 @@ int main(int argc, char **argv) + test_secret_keyring_bad_serial_key); + g_test_add_func("/crypto/secret/keyring/bad_key_access_right", + test_secret_keyring_bad_key_access_right); +-#endif /* CONFIG_KEYUTILS */ ++#endif /* CONFIG_KEYUTILS && CONFIG_SECRET_KEYRING */ + + g_test_add_func("/crypto/secret/noconv/base64/good", + test_secret_noconv_base64_good); +-- +2.41.0.windows.1 + -- Gitee