This conflicts with "qemu: enable parallel builds when using the
jobserver class" that I'm currently carrying, should I drop it?

On 22/05/2024 15:28:38+0200, Martin Hundeb?ll wrote:
> Remove pacthes accepted upstream, and refresh the remaining ones. Remove
> patches required by ubuntu 18.04, as those are unmaintainable.
> 
> Remove CVE status for CVEs not applicable to the new version.
> 
> Exclude hppa-firmware{,64}.img files from stripping during packaging, as
> those (binary) files are already stripped.
> 
> Signed-off-by: Martin Hundebøll <[email protected]>
> ---
> 
> I'm no sure about the CVE changes, but the one I removed didn't have
> qemu-9.* listed as a vulnerable configuration.
> 
> This has been tested with runqemu on a standard qemux86-64 machine. If
> it breaks miserably elsewhere, then at least there's a starting point.
> 
>  meta/conf/distro/include/tcmode-default.inc   |   2 +-
>  ...u-native_8.2.1.bb => qemu-native_9.0.0.bb} |   0
>  ...e_8.2.1.bb => qemu-system-native_9.0.0.bb} |   0
>  meta/recipes-devtools/qemu/qemu.inc           |  58 +---
>  ...4-Handle-the-vsyscall-page-in-open_s.patch |  56 ----
>  ...n-environment-space-to-boot-loader-q.patch |  18 +-
>  ... 0002-apic-fixup-fallthrough-to-PIC.patch} |  18 +-
>  ...ongarch64-Remove-TARGET_FORCE_SHMLBA.patch |  43 ---
>  ...d-pkg-config-handling-for-libgcrypt.patch} |  18 +-
>  ...0003-linux-user-Add-strace-for-shmat.patch |  71 -----
>  ...0004-linux-user-Rewrite-target_shmat.patch | 236 ---------------
>  ...u-Do-not-include-file-if-not-exists.patch} |  18 +-
>  ...r-space-mmap-tweaks-to-address-musl.patch} |  18 +-
>  ...that-shmat-does-not-break-proc-self-.patch |  85 ------
>  ...atch => 0006-qemu-Determinism-fixes.patch} |  18 +-
>  ...-use-relative-path-to-refer-to-file.patch} |  20 +-
>  ...nd-MAP_SHARED_VALIDATE-on-needed-li.patch} |  16 +-
>  ...e-use-of-lfs64-related-functions-an.patch} |  61 ++--
>  ...ure-lookup-meson-exutable-from-PATH.patch} |  21 +-
>  ...t-against-buggy-or-malicious-guest-d.patch |  40 ---
>  ...round-for-missing-MAP_FIXED_NOREPLAC.patch | 282 ------------------
>  ...nd-the-python-venv-aren-t-used-for-.patch} |  26 +-
>  ...round-for-missing-MAP_SHARED_VALIDAT.patch |  51 ----
>  ...79ad8629b57a43daa62e46cc7af6e1078116.patch |  60 ----
>  .../qemu/qemu/CVE-2023-6683.patch             |  91 ------
>  .../qemu/{qemu_8.2.1.bb => qemu_9.0.0.bb}     |   0
>  26 files changed, 163 insertions(+), 1164 deletions(-)
>  rename meta/recipes-devtools/qemu/{qemu-native_8.2.1.bb => 
> qemu-native_9.0.0.bb} (100%)
>  rename meta/recipes-devtools/qemu/{qemu-system-native_8.2.1.bb => 
> qemu-system-native_9.0.0.bb} (100%)
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
>  rename 
> meta/recipes-devtools/qemu/qemu/{0003-apic-fixup-fallthrough-to-PIC.patch => 
> 0002-apic-fixup-fallthrough-to-PIC.patch} (80%)
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch
>  rename 
> meta/recipes-devtools/qemu/qemu/{0004-configure-Add-pkg-config-handling-for-libgcrypt.patch
>  => 0003-configure-Add-pkg-config-handling-for-libgcrypt.patch} (73%)
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/0003-linux-user-Add-strace-for-shmat.patch
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/0004-linux-user-Rewrite-target_shmat.patch
>  rename 
> meta/recipes-devtools/qemu/qemu/{0005-qemu-Do-not-include-file-if-not-exists.patch
>  => 0004-qemu-Do-not-include-file-if-not-exists.patch} (67%)
>  rename 
> meta/recipes-devtools/qemu/qemu/{0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch
>  => 0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch} (80%)
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch
>  rename meta/recipes-devtools/qemu/qemu/{0007-qemu-Determinism-fixes.patch => 
> 0006-qemu-Determinism-fixes.patch} (71%)
>  rename 
> meta/recipes-devtools/qemu/qemu/{0008-tests-meson.build-use-relative-path-to-refer-to-file.patch
>  => 0007-tests-meson.build-use-relative-path-to-refer-to-file.patch} (76%)
>  rename 
> meta/recipes-devtools/qemu/qemu/{0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch
>  => 0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch} (80%)
>  rename 
> meta/recipes-devtools/qemu/qemu/{0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch
>  => 0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch} (81%)
>  rename meta/recipes-devtools/qemu/qemu/{fixedmeson.patch => 
> 0010-configure-lookup-meson-exutable-from-PATH.patch} (53%)
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
>  rename meta/recipes-devtools/qemu/qemu/{no-pip.patch => 
> 0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch} (70%)
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch
>  delete mode 100644 
> meta/recipes-devtools/qemu/qemu/4a8579ad8629b57a43daa62e46cc7af6e1078116.patch
>  delete mode 100644 meta/recipes-devtools/qemu/qemu/CVE-2023-6683.patch
>  rename meta/recipes-devtools/qemu/{qemu_8.2.1.bb => qemu_9.0.0.bb} (100%)
> 
> diff --git a/meta/conf/distro/include/tcmode-default.inc 
> b/meta/conf/distro/include/tcmode-default.inc
> index 23d5aa6de8..a55258dfbe 100644
> --- a/meta/conf/distro/include/tcmode-default.inc
> +++ b/meta/conf/distro/include/tcmode-default.inc
> @@ -22,7 +22,7 @@ BINUVERSION ?= "2.42%"
>  GDBVERSION ?= "14.%"
>  GLIBCVERSION ?= "2.39%"
>  LINUXLIBCVERSION ?= "6.6%"
> -QEMUVERSION ?= "8.2%"
> +QEMUVERSION ?= "9.0%"
>  GOVERSION ?= "1.22%"
>  RUSTVERSION ?= "1.75%"
>  
> diff --git a/meta/recipes-devtools/qemu/qemu-native_8.2.1.bb 
> b/meta/recipes-devtools/qemu/qemu-native_9.0.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/qemu/qemu-native_8.2.1.bb
> rename to meta/recipes-devtools/qemu/qemu-native_9.0.0.bb
> diff --git a/meta/recipes-devtools/qemu/qemu-system-native_8.2.1.bb 
> b/meta/recipes-devtools/qemu/qemu-system-native_9.0.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/qemu/qemu-system-native_8.2.1.bb
> rename to meta/recipes-devtools/qemu/qemu-system-native_9.0.0.bb
> diff --git a/meta/recipes-devtools/qemu/qemu.inc 
> b/meta/recipes-devtools/qemu/qemu.inc
> index f76cbbb5cb..3b5775c31b 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -22,62 +22,31 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
>             file://powerpc_rom.bin \
>             file://run-ptest \
>             
> file://0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch \
> -           file://0003-apic-fixup-fallthrough-to-PIC.patch \
> -           file://0004-configure-Add-pkg-config-handling-for-libgcrypt.patch 
> \
> -           file://0005-qemu-Do-not-include-file-if-not-exists.patch \
> -           
> file://0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch \
> -           file://0007-qemu-Determinism-fixes.patch \
> -           
> file://0008-tests-meson.build-use-relative-path-to-refer-to-file.patch \
> -           
> file://0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \
> -           
> file://0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch \
> -           
> file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \
> -           file://fixedmeson.patch \
> -           file://no-pip.patch \
> -           file://4a8579ad8629b57a43daa62e46cc7af6e1078116.patch \
> -           
> file://0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch \
> -           
> file://0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch \
> -           file://0003-linux-user-Add-strace-for-shmat.patch \
> -           file://0004-linux-user-Rewrite-target_shmat.patch \
> -           
> file://0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch \
> -           file://CVE-2023-6683.patch \
> +           file://0002-apic-fixup-fallthrough-to-PIC.patch \
> +           file://0003-configure-Add-pkg-config-handling-for-libgcrypt.patch 
> \
> +           file://0004-qemu-Do-not-include-file-if-not-exists.patch \
> +           
> file://0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch \
> +           file://0006-qemu-Determinism-fixes.patch \
> +           
> file://0007-tests-meson.build-use-relative-path-to-refer-to-file.patch \
> +           
> file://0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \
> +           
> file://0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch \
> +           file://0010-configure-lookup-meson-exutable-from-PATH.patch \
> +           
> file://0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch \
>             file://qemu-guest-agent.init \
>             file://qemu-guest-agent.udev \
>             "
>  UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
>  
> -# SDK_OLDEST_KERNEL is set below 4.17, which is the minimum version required 
> by QEMU >= 8.1
> -# This is due to two MMAP flags being used at certain points
> -SRC_URI:append:class-nativesdk = " \
> -     file://0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch \
> -     file://0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch \
> -        "
> -
> -# Support building and using native version on pre 4.17 kernels
> -SRC_URI:append:class-native = " \
> -     file://0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch \
> -     file://0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch \
> -        "
> -
> -SRC_URI[sha256sum] = 
> "8562751158175f9d187c5f22b57555abe3c870f0325c8ced12c34c6d987729be"
> +SRC_URI[sha256sum] = 
> "32708ac66c30d8c892633ea968c771c1c76d597d70ddead21a0d22ccf386da69"
>  
>  CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can 
> expose host files uder some circumstances. We don't enable it by default."
>  
>  # https://bugzilla.redhat.com/show_bug.cgi?id=1609015#c11
>  CVE_STATUS[CVE-2018-18438] = "disputed: The issues identified by this CVE 
> were determined to not constitute a vulnerability."
>  
> -# As per https://nvd.nist.gov/vuln/detail/CVE-2023-0664
> -# https://bugzilla.redhat.com/show_bug.cgi?id=2167423
> -CVE_STATUS[CVE-2023-0664] = "not-applicable-platform: Issue only applies on 
> Windows"
> -
>  # As per https://bugzilla.redhat.com/show_bug.cgi?id=2203387
>  CVE_STATUS[CVE-2023-2680] = "not-applicable-platform: RHEL specific issue."
>  
> -CVE_STATUS[CVE-2023-3019] = "cpe-incorrect: Applies only against versions 
> before 8.2.0"
> -
> -CVE_STATUS[CVE-2023-5088] = "cpe-incorrect: Applies only against version 
> 8.2.0 and earlier"
> -
> -CVE_STATUS[CVE-2023-6693] = "cpe-incorrect: Applies only against version 
> 8.2.0 and earlier"
> -
>  COMPATIBLE_HOST:mipsarchn32 = "null"
>  COMPATIBLE_HOST:mipsarchn64 = "null"
>  COMPATIBLE_HOST:riscv32 = "null"
> @@ -292,6 +261,11 @@ python split_qemu_packages () {
>          d.appendVar('RDEPENDS:' + mipspackage, ' ' + d.getVar("MLPREFIX") + 
> 'bash')
>  }
>  
> +INHIBIT_PACKAGE_STRIP_FILES += " \
> +    ${PKGD}${datadir}/qemu/hppa-firmware.img \
> +    ${PKGD}${datadir}/qemu/hppa-firmware64.img \
> +"
> +
>  # Put the guest agent in a separate package
>  PACKAGES =+ "${PN}-guest-agent"
>  SUMMARY:${PN}-guest-agent = "QEMU guest agent"
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
> deleted file mode 100644
> index 2eaebe883c..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
> +++ /dev/null
> @@ -1,56 +0,0 @@
> -From 4517e2046610722879761bcdb60edbb2b929c848 Mon Sep 17 00:00:00 2001
> -From: Richard Henderson <[email protected]>
> -Date: Wed, 28 Feb 2024 10:25:14 -1000
> -Subject: [PATCH 1/5] linux-user/x86_64: Handle the vsyscall page in
> - open_self_maps_{2,4}
> -
> -This is the only case in which we expect to have no host memory backing
> -for a guest memory page, because in general linux user processes cannot
> -map any pages in the top half of the 64-bit address space.
> -
> -Upstream-Status: Submitted 
> [https://www.mail-archive.com/[email protected]/msg1026793.html]
> -
> -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2170
> -Signed-off-by: Richard Henderson <[email protected]>
> -Signed-off-by: Richard Purdie <[email protected]>
> ----
> - linux-user/syscall.c | 16 ++++++++++++++++
> - 1 file changed, 16 insertions(+)
> -
> -diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> -index a114f29a8..8307a8a61 100644
> ---- a/linux-user/syscall.c
> -+++ b/linux-user/syscall.c
> -@@ -7922,6 +7922,10 @@ static void open_self_maps_4(const struct 
> open_self_maps_data *d,
> -         path = "[heap]";
> -     } else if (start == info->vdso) {
> -         path = "[vdso]";
> -+#ifdef TARGET_X86_64
> -+    } else if (start == TARGET_VSYSCALL_PAGE) {
> -+        path = "[vsyscall]";
> -+#endif
> -     }
> - 
> -     /* Except null device (MAP_ANON), adjust offset for this fragment. */
> -@@ -8010,6 +8014,18 @@ static int open_self_maps_2(void *opaque, 
> target_ulong guest_start,
> -     uintptr_t host_start = (uintptr_t)g2h_untagged(guest_start);
> -     uintptr_t host_last = (uintptr_t)g2h_untagged(guest_end - 1);
> - 
> -+#ifdef TARGET_X86_64
> -+    /*
> -+     * Because of the extremely high position of the page within the guest
> -+     * virtual address space, this is not backed by host memory at all.
> -+     * Therefore the loop below would fail.  This is the only instance
> -+     * of not having host backing memory.
> -+     */
> -+    if (guest_start == TARGET_VSYSCALL_PAGE) {
> -+        return open_self_maps_3(opaque, guest_start, guest_end, flags);
> -+    }
> -+#endif
> -+
> -     while (1) {
> -         IntervalTreeNode *n =
> -             interval_tree_iter_first(d->host_maps, host_start, host_start);
> --- 
> -2.34.1
> -
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> index c65508017d..2333cc8432 100644
> --- 
> a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch
> @@ -1,7 +1,7 @@
> -From de64af82950a6908f9407dfc92b83c17e2af3eab Mon Sep 17 00:00:00 2001
> +From e9baf07a667a1c04b57e14776cc4fa387448c908 Mon Sep 17 00:00:00 2001
>  From: Jason Wessel <[email protected]>
>  Date: Fri, 28 Mar 2014 17:42:43 +0800
> -Subject: [PATCH 01/12] qemu: Add addition environment space to boot loader
> +Subject: [PATCH 01/11] qemu: Add addition environment space to boot loader
>   qemu-system-mips
>  
>  Upstream-Status: Inappropriate - OE uses deep paths
> @@ -13,16 +13,15 @@ to only 256 bytes. This patch expands the limit.
>  
>  Signed-off-by: Jason Wessel <[email protected]>
>  Signed-off-by: Roy Li <[email protected]>
> -
>  ---
>   hw/mips/malta.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>  
> -Index: qemu-8.0.0/hw/mips/malta.c
> -===================================================================
> ---- qemu-8.0.0.orig/hw/mips/malta.c
> -+++ qemu-8.0.0/hw/mips/malta.c
> -@@ -64,7 +64,7 @@
> +diff --git a/hw/mips/malta.c b/hw/mips/malta.c
> +index af74008c82..a588b9ad4e 100644
> +--- a/hw/mips/malta.c
> ++++ b/hw/mips/malta.c
> +@@ -63,7 +63,7 @@
>   #define ENVP_PADDR          0x2000
>   #define ENVP_VADDR          cpu_mips_phys_to_kseg0(NULL, ENVP_PADDR)
>   #define ENVP_NB_ENTRIES     16
> @@ -31,3 +30,6 @@ Index: qemu-8.0.0/hw/mips/malta.c
>   
>   /* Hardware addresses */
>   #define FLASH_ADDRESS       0x1e000000ULL
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0003-apic-fixup-fallthrough-to-PIC.patch 
> b/meta/recipes-devtools/qemu/qemu/0002-apic-fixup-fallthrough-to-PIC.patch
> similarity index 80%
> rename from 
> meta/recipes-devtools/qemu/qemu/0003-apic-fixup-fallthrough-to-PIC.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0002-apic-fixup-fallthrough-to-PIC.patch
> index e85f8202e9..5f8fe4faa3 100644
> --- a/meta/recipes-devtools/qemu/qemu/0003-apic-fixup-fallthrough-to-PIC.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0002-apic-fixup-fallthrough-to-PIC.patch
> @@ -1,7 +1,7 @@
> -From dc2a8ccd440ee3741b61606eafed3f7e092f4312 Mon Sep 17 00:00:00 2001
> +From 23bf534e463bf4c1ba2e1356eaf17be0b23b192e Mon Sep 17 00:00:00 2001
>  From: Mark Asselstine <[email protected]>
>  Date: Tue, 26 Feb 2013 11:43:28 -0500
> -Subject: [PATCH 03/12] apic: fixup fallthrough to PIC
> +Subject: [PATCH 02/11] apic: fixup fallthrough to PIC
>  
>  Commit 0e21e12bb311c4c1095d0269dc2ef81196ccb60a [Don't route PIC
>  interrupts through the local APIC if the local APIC config says so.]
> @@ -24,16 +24,15 @@ serviced, is -1.
>  Signed-off-by: Mark Asselstine <[email protected]>
>  Upstream-Status: Submitted 
> [https://lists.gnu.org/archive/html/qemu-devel/2013-04/msg00878.html]
>  Signed-off-by: He Zhe <[email protected]>
> -
>  ---
>   hw/intc/apic.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>  
> -Index: qemu-8.0.0/hw/intc/apic.c
> -===================================================================
> ---- qemu-8.0.0.orig/hw/intc/apic.c
> -+++ qemu-8.0.0/hw/intc/apic.c
> -@@ -607,7 +607,7 @@ int apic_accept_pic_intr(DeviceState *de
> +diff --git a/hw/intc/apic.c b/hw/intc/apic.c
> +index 4186c57b34..43cd805a96 100644
> +--- a/hw/intc/apic.c
> ++++ b/hw/intc/apic.c
> +@@ -759,7 +759,7 @@ int apic_accept_pic_intr(DeviceState *dev)
>       APICCommonState *s = APIC(dev);
>       uint32_t lvt0;
>   
> @@ -42,3 +41,6 @@ Index: qemu-8.0.0/hw/intc/apic.c
>           return -1;
>   
>       lvt0 = s->lvt[APIC_LVT_LINT0];
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch
> deleted file mode 100644
> index 3f01aaa644..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -From 5bf65b24414d3ff8339f6f1beb221c7c35c91e5d Mon Sep 17 00:00:00 2001
> -From: Richard Henderson <[email protected]>
> -Date: Wed, 28 Feb 2024 10:25:15 -1000
> -Subject: [PATCH 2/5] linux-user/loongarch64: Remove TARGET_FORCE_SHMLBA
> -
> -The kernel abi was changed with
> -
> -    commit d23b77953f5a4fbf94c05157b186aac2a247ae32
> -    Author: Huacai Chen <[email protected]>
> -    Date:   Wed Jan 17 12:43:08 2024 +0800
> -
> -        LoongArch: Change SHMLBA from SZ_64K to PAGE_SIZE
> -
> -during the v6.8 cycle.
> -
> -Upstream-Status: Submitted 
> [https://www.mail-archive.com/[email protected]/msg1026793.html]
> -
> -Reviewed-by: Song Gao <[email protected]>
> -Signed-off-by: Richard Henderson <[email protected]>
> -Signed-off-by: Richard Purdie <[email protected]>
> ----
> - linux-user/loongarch64/target_syscall.h | 7 -------
> - 1 file changed, 7 deletions(-)
> -
> -diff --git a/linux-user/loongarch64/target_syscall.h 
> b/linux-user/loongarch64/target_syscall.h
> -index 8b5de5212..39f229bb9 100644
> ---- a/linux-user/loongarch64/target_syscall.h
> -+++ b/linux-user/loongarch64/target_syscall.h
> -@@ -38,11 +38,4 @@ struct target_pt_regs {
> - #define TARGET_MCL_FUTURE  2
> - #define TARGET_MCL_ONFAULT 4
> - 
> --#define TARGET_FORCE_SHMLBA
> --
> --static inline abi_ulong target_shmlba(CPULoongArchState *env)
> --{
> --    return 64 * KiB;
> --}
> --
> - #endif
> --- 
> -2.34.1
> -
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0003-configure-Add-pkg-config-handling-for-libgcrypt.patch
> similarity index 73%
> rename from 
> meta/recipes-devtools/qemu/qemu/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0003-configure-Add-pkg-config-handling-for-libgcrypt.patch
> index f981a64a54..30e269f8f4 100644
> --- 
> a/meta/recipes-devtools/qemu/qemu/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0003-configure-Add-pkg-config-handling-for-libgcrypt.patch
> @@ -1,7 +1,7 @@
> -From d8265abdce5dc2bf74b3fccdf2b7257b4f3894f0 Mon Sep 17 00:00:00 2001
> +From e4f6c6b9f43b28271bc9dc6cbcafad53f80387e0 Mon Sep 17 00:00:00 2001
>  From: He Zhe <[email protected]>
>  Date: Wed, 28 Aug 2019 19:56:28 +0800
> -Subject: [PATCH 04/12] configure: Add pkg-config handling for libgcrypt
> +Subject: [PATCH 03/11] configure: Add pkg-config handling for libgcrypt
>  
>  libgcrypt may also be controlled by pkg-config, this patch adds pkg-config
>  handling for libgcrypt.
> @@ -9,16 +9,15 @@ handling for libgcrypt.
>  Upstream-Status: Denied 
> [https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg06333.html]
>  
>  Signed-off-by: He Zhe <[email protected]>
> -
>  ---
>   meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>  
> -Index: qemu-8.1.0/meson.build
> -===================================================================
> ---- qemu-8.1.0.orig/meson.build
> -+++ qemu-8.1.0/meson.build
> -@@ -1481,7 +1481,7 @@ endif
> +diff --git a/meson.build b/meson.build
> +index 91a0aa64c6..e8373d55b8 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -1655,7 +1655,7 @@ endif
>   if not gnutls_crypto.found()
>     if (not get_option('gcrypt').auto() or have_system) and not 
> get_option('nettle').enabled()
>       gcrypt = dependency('libgcrypt', version: '>=1.8',
> @@ -27,3 +26,6 @@ Index: qemu-8.1.0/meson.build
>                           required: get_option('gcrypt'))
>       # Debian has removed -lgpg-error from libgcrypt-config
>       # as it "spreads unnecessary dependencies" which in
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0003-linux-user-Add-strace-for-shmat.patch 
> b/meta/recipes-devtools/qemu/qemu/0003-linux-user-Add-strace-for-shmat.patch
> deleted file mode 100644
> index 0c601c804a..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/0003-linux-user-Add-strace-for-shmat.patch
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -From e8f06676c6c88e12cd5f4f81a839b7111c683596 Mon Sep 17 00:00:00 2001
> -From: Richard Henderson <[email protected]>
> -Date: Wed, 28 Feb 2024 10:25:16 -1000
> -Subject: [PATCH 3/5] linux-user: Add strace for shmat
> -
> -Upstream-Status: Submitted 
> [https://www.mail-archive.com/[email protected]/msg1026793.html]
> -
> -Signed-off-by: Richard Henderson <[email protected]>
> -Signed-off-by: Richard Purdie <[email protected]>
> ----
> - linux-user/strace.c    | 23 +++++++++++++++++++++++
> - linux-user/strace.list |  2 +-
> - 2 files changed, 24 insertions(+), 1 deletion(-)
> -
> -diff --git a/linux-user/strace.c b/linux-user/strace.c
> -index cf26e5526..47d6ec326 100644
> ---- a/linux-user/strace.c
> -+++ b/linux-user/strace.c
> -@@ -670,6 +670,25 @@ print_semctl(CPUArchState *cpu_env, const struct 
> syscallname *name,
> - }
> - #endif
> - 
> -+static void
> -+print_shmat(CPUArchState *cpu_env, const struct syscallname *name,
> -+            abi_long arg0, abi_long arg1, abi_long arg2,
> -+            abi_long arg3, abi_long arg4, abi_long arg5)
> -+{
> -+    static const struct flags shmat_flags[] = {
> -+        FLAG_GENERIC(SHM_RND),
> -+        FLAG_GENERIC(SHM_REMAP),
> -+        FLAG_GENERIC(SHM_RDONLY),
> -+        FLAG_GENERIC(SHM_EXEC),
> -+    };
> -+
> -+    print_syscall_prologue(name);
> -+    print_raw_param(TARGET_ABI_FMT_ld, arg0, 0);
> -+    print_pointer(arg1, 0);
> -+    print_flags(shmat_flags, arg2, 1);
> -+    print_syscall_epilogue(name);
> -+}
> -+
> - #ifdef TARGET_NR_ipc
> - static void
> - print_ipc(CPUArchState *cpu_env, const struct syscallname *name,
> -@@ -683,6 +702,10 @@ print_ipc(CPUArchState *cpu_env, const struct 
> syscallname *name,
> -         print_ipc_cmd(arg3);
> -         qemu_log(",0x" TARGET_ABI_FMT_lx ")", arg4);
> -         break;
> -+    case IPCOP_shmat:
> -+        print_shmat(cpu_env, &(const struct syscallname){ .name = "shmat" },
> -+                    arg1, arg4, arg2, 0, 0, 0);
> -+        break;
> -     default:
> -         qemu_log(("%s("
> -                   TARGET_ABI_FMT_ld ","
> -diff --git a/linux-user/strace.list b/linux-user/strace.list
> -index 6655d4f26..dfd4237d1 100644
> ---- a/linux-user/strace.list
> -+++ b/linux-user/strace.list
> -@@ -1398,7 +1398,7 @@
> - { TARGET_NR_sgetmask, "sgetmask" , NULL, NULL, NULL },
> - #endif
> - #ifdef TARGET_NR_shmat
> --{ TARGET_NR_shmat, "shmat" , NULL, NULL, print_syscall_ret_addr },
> -+{ TARGET_NR_shmat, "shmat" , NULL, print_shmat, print_syscall_ret_addr },
> - #endif
> - #ifdef TARGET_NR_shmctl
> - { TARGET_NR_shmctl, "shmctl" , NULL, NULL, NULL },
> --- 
> -2.34.1
> -
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0004-linux-user-Rewrite-target_shmat.patch 
> b/meta/recipes-devtools/qemu/qemu/0004-linux-user-Rewrite-target_shmat.patch
> deleted file mode 100644
> index 88c3ed40b0..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/0004-linux-user-Rewrite-target_shmat.patch
> +++ /dev/null
> @@ -1,236 +0,0 @@
> -From cb48d5d1592e63ebd0d4a3e300ef98e38e6306d7 Mon Sep 17 00:00:00 2001
> -From: Richard Henderson <[email protected]>
> -Date: Wed, 28 Feb 2024 10:25:17 -1000
> -Subject: [PATCH 4/5] linux-user: Rewrite target_shmat
> -
> -Handle combined host and guest alignment requirements.
> -Handle host and guest page size differences.
> -Handle SHM_EXEC.
> -
> -Upstream-Status: Submitted 
> [https://www.mail-archive.com/[email protected]/msg1026793.html]
> -
> -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/115
> -Signed-off-by: Richard Henderson <[email protected]>
> -Signed-off-by: Richard Purdie <[email protected]>
> ----
> - linux-user/mmap.c | 166 +++++++++++++++++++++++++++++++++++++---------
> - 1 file changed, 133 insertions(+), 33 deletions(-)
> -
> -diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> -index 18fb3aaf7..6a2f649bb 100644
> ---- a/linux-user/mmap.c
> -+++ b/linux-user/mmap.c
> -@@ -1062,69 +1062,161 @@ static inline abi_ulong target_shmlba(CPUArchState 
> *cpu_env)
> - }
> - #endif
> - 
> -+#if defined(__arm__) || defined(__mips__) || defined(__sparc__)
> -+#define HOST_FORCE_SHMLBA 1
> -+#else
> -+#define HOST_FORCE_SHMLBA 0
> -+#endif
> -+
> - abi_ulong target_shmat(CPUArchState *cpu_env, int shmid,
> -                        abi_ulong shmaddr, int shmflg)
> - {
> -     CPUState *cpu = env_cpu(cpu_env);
> --    abi_ulong raddr;
> -     struct shmid_ds shm_info;
> -     int ret;
> --    abi_ulong shmlba;
> -+    int h_pagesize;
> -+    int t_shmlba, h_shmlba, m_shmlba;
> -+    size_t t_len, h_len, m_len;
> - 
> -     /* shmat pointers are always untagged */
> - 
> --    /* find out the length of the shared memory segment */
> -+    /*
> -+     * Because we can't use host shmat() unless the address is sufficiently
> -+     * aligned for the host, we'll need to check both.
> -+     * TODO: Could be fixed with softmmu.
> -+     */
> -+    t_shmlba = target_shmlba(cpu_env);
> -+    h_pagesize = qemu_real_host_page_size();
> -+    h_shmlba = (HOST_FORCE_SHMLBA ? SHMLBA : h_pagesize);
> -+    m_shmlba = MAX(t_shmlba, h_shmlba);
> -+
> -+    if (shmaddr) {
> -+        if (shmaddr & (m_shmlba - 1)) {
> -+            if (shmflg & SHM_RND) {
> -+                /*
> -+                 * The guest is allowing the kernel to round the address.
> -+                 * Assume that the guest is ok with us rounding to the
> -+                 * host required alignment too.  Anyway if we don't, we'll
> -+                 * get an error from the kernel.
> -+                 */
> -+                shmaddr &= ~(m_shmlba - 1);
> -+                if (shmaddr == 0 && (shmflg & SHM_REMAP)) {
> -+                    return -TARGET_EINVAL;
> -+                }
> -+            } else {
> -+                int require = TARGET_PAGE_SIZE;
> -+#ifdef TARGET_FORCE_SHMLBA
> -+                require = t_shmlba;
> -+#endif
> -+                /*
> -+                 * Include host required alignment, as otherwise we cannot
> -+                 * use host shmat at all.
> -+                 */
> -+                require = MAX(require, h_shmlba);
> -+                if (shmaddr & (require - 1)) {
> -+                    return -TARGET_EINVAL;
> -+                }
> -+            }
> -+        }
> -+    } else {
> -+        if (shmflg & SHM_REMAP) {
> -+            return -TARGET_EINVAL;
> -+        }
> -+    }
> -+    /* All rounding now manually concluded. */
> -+    shmflg &= ~SHM_RND;
> -+
> -+    /* Find out the length of the shared memory segment. */
> -     ret = get_errno(shmctl(shmid, IPC_STAT, &shm_info));
> -     if (is_error(ret)) {
> -         /* can't get length, bail out */
> -         return ret;
> -     }
> -+    t_len = TARGET_PAGE_ALIGN(shm_info.shm_segsz);
> -+    h_len = ROUND_UP(shm_info.shm_segsz, h_pagesize);
> -+    m_len = MAX(t_len, h_len);
> - 
> --    shmlba = target_shmlba(cpu_env);
> --
> --    if (shmaddr & (shmlba - 1)) {
> --        if (shmflg & SHM_RND) {
> --            shmaddr &= ~(shmlba - 1);
> --        } else {
> --            return -TARGET_EINVAL;
> --        }
> --    }
> --    if (!guest_range_valid_untagged(shmaddr, shm_info.shm_segsz)) {
> -+    if (!guest_range_valid_untagged(shmaddr, m_len)) {
> -         return -TARGET_EINVAL;
> -     }
> - 
> -     WITH_MMAP_LOCK_GUARD() {
> --        void *host_raddr;
> -+        bool mapped = false;
> -+        void *want, *test;
> -         abi_ulong last;
> - 
> --        if (shmaddr) {
> --            host_raddr = shmat(shmid, (void *)g2h_untagged(shmaddr), 
> shmflg);
> -+        if (!shmaddr) {
> -+            shmaddr = mmap_find_vma(0, m_len, m_shmlba);
> -+            if (shmaddr == -1) {
> -+                return -TARGET_ENOMEM;
> -+            }
> -+            mapped = !reserved_va;
> -+        } else if (shmflg & SHM_REMAP) {
> -+            /*
> -+             * If host page size > target page size, the host shmat may map
> -+             * more memory than the guest expects.  Reject a mapping that
> -+             * would replace memory in the unexpected gap.
> -+             * TODO: Could be fixed with softmmu.
> -+             */
> -+            if (t_len < h_len &&
> -+                !page_check_range_empty(shmaddr + t_len,
> -+                                        shmaddr + h_len - 1)) {
> -+                return -TARGET_EINVAL;
> -+            }
> -         } else {
> --            abi_ulong mmap_start;
> -+            if (!page_check_range_empty(shmaddr, shmaddr + m_len - 1)) {
> -+                return -TARGET_EINVAL;
> -+            }
> -+        }
> - 
> --            /* In order to use the host shmat, we need to honor host 
> SHMLBA.  */
> --            mmap_start = mmap_find_vma(0, shm_info.shm_segsz,
> --                                       MAX(SHMLBA, shmlba));
> -+        /* All placement is now complete. */
> -+        want = (void *)g2h_untagged(shmaddr);
> - 
> --            if (mmap_start == -1) {
> --                return -TARGET_ENOMEM;
> -+        /*
> -+         * Map anonymous pages across the entire range, then remap with
> -+         * the shared memory.  This is required for a number of corner
> -+         * cases for which host and guest page sizes differ.
> -+         */
> -+        if (h_len != t_len) {
> -+            int mmap_p = PROT_READ | (shmflg & SHM_RDONLY ? 0 : PROT_WRITE);
> -+            int mmap_f = MAP_PRIVATE | MAP_ANONYMOUS
> -+                       | (reserved_va || (shmflg & SHM_REMAP)
> -+                          ? MAP_FIXED : MAP_FIXED_NOREPLACE);
> -+
> -+            test = mmap(want, m_len, mmap_p, mmap_f, -1, 0);
> -+            if (unlikely(test != want)) {
> -+                /* shmat returns EINVAL not EEXIST like mmap. */
> -+                ret = (test == MAP_FAILED && errno != EEXIST
> -+                       ? get_errno(-1) : -TARGET_EINVAL);
> -+                if (mapped) {
> -+                    do_munmap(want, m_len);
> -+                }
> -+                return ret;
> -             }
> --            host_raddr = shmat(shmid, g2h_untagged(mmap_start),
> --                               shmflg | SHM_REMAP);
> -+            mapped = true;
> -         }
> - 
> --        if (host_raddr == (void *)-1) {
> --            return get_errno(-1);
> -+        if (reserved_va || mapped) {
> -+            shmflg |= SHM_REMAP;
> -+        }
> -+        test = shmat(shmid, want, shmflg);
> -+        if (test == MAP_FAILED) {
> -+            ret = get_errno(-1);
> -+            if (mapped) {
> -+                do_munmap(want, m_len);
> -+            }
> -+            return ret;
> -         }
> --        raddr = h2g(host_raddr);
> --        last = raddr + shm_info.shm_segsz - 1;
> -+        assert(test == want);
> - 
> --        page_set_flags(raddr, last,
> -+        last = shmaddr + m_len - 1;
> -+        page_set_flags(shmaddr, last,
> -                        PAGE_VALID | PAGE_RESET | PAGE_READ |
> --                       (shmflg & SHM_RDONLY ? 0 : PAGE_WRITE));
> -+                       (shmflg & SHM_RDONLY ? 0 : PAGE_WRITE) |
> -+                       (shmflg & SHM_EXEC ? PAGE_EXEC : 0));
> - 
> --        shm_region_rm_complete(raddr, last);
> --        shm_region_add(raddr, last);
> -+        shm_region_rm_complete(shmaddr, last);
> -+        shm_region_add(shmaddr, last);
> -     }
> - 
> -     /*
> -@@ -1138,7 +1230,15 @@ abi_ulong target_shmat(CPUArchState *cpu_env, int 
> shmid,
> -         tb_flush(cpu);
> -     }
> - 
> --    return raddr;
> -+    if (qemu_loglevel_mask(CPU_LOG_PAGE)) {
> -+        FILE *f = qemu_log_trylock();
> -+        if (f) {
> -+            fprintf(f, "page layout changed following shmat\n");
> -+            page_dump(f);
> -+            qemu_log_unlock(f);
> -+        }
> -+    }
> -+    return shmaddr;
> - }
> - 
> - abi_long target_shmdt(abi_ulong shmaddr)
> --- 
> -2.34.1
> -
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0005-qemu-Do-not-include-file-if-not-exists.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0004-qemu-Do-not-include-file-if-not-exists.patch
> similarity index 67%
> rename from 
> meta/recipes-devtools/qemu/qemu/0005-qemu-Do-not-include-file-if-not-exists.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0004-qemu-Do-not-include-file-if-not-exists.patch
> index 38aa4c3bbe..d9cab428c4 100644
> --- 
> a/meta/recipes-devtools/qemu/qemu/0005-qemu-Do-not-include-file-if-not-exists.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0004-qemu-Do-not-include-file-if-not-exists.patch
> @@ -1,7 +1,7 @@
> -From f39e7bfc5ed07b5ecaeb705c4eae4855ca120d47 Mon Sep 17 00:00:00 2001
> +From 5223d46a8d5302396f9fc7cc5d830769e87242fe Mon Sep 17 00:00:00 2001
>  From: Oleksiy Obitotskyy <[email protected]>
>  Date: Wed, 25 Mar 2020 21:21:35 +0200
> -Subject: [PATCH 05/12] qemu: Do not include file if not exists
> +Subject: [PATCH 04/11] qemu: Do not include file if not exists
>  
>  Script configure checks for if_alg.h and check failed but
>  if_alg.h still included.
> @@ -11,16 +11,15 @@ Signed-off-by: Oleksiy Obitotskyy <[email protected]>
>  
>  [update patch context]
>  Signed-off-by: Sakib Sajal <[email protected]>
> -
>  ---
>   linux-user/syscall.c | 2 ++
>   1 file changed, 2 insertions(+)
>  
> -Index: qemu-8.0.0/linux-user/syscall.c
> -===================================================================
> ---- qemu-8.0.0.orig/linux-user/syscall.c
> -+++ qemu-8.0.0/linux-user/syscall.c
> -@@ -115,7 +115,9 @@
> +diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> +index 3df2b94d9a..18f09f1f07 100644
> +--- a/linux-user/syscall.c
> ++++ b/linux-user/syscall.c
> +@@ -116,7 +116,9 @@
>   #include <linux/blkpg.h>
>   #include <netpacket/packet.h>
>   #include <linux/netlink.h>
> @@ -30,3 +29,6 @@ Index: qemu-8.0.0/linux-user/syscall.c
>   #include <linux/rtc.h>
>   #include <sound/asound.h>
>   #ifdef HAVE_BTRFS_H
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch
> similarity index 80%
> rename from 
> meta/recipes-devtools/qemu/qemu/0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch
> index 5d1d7c6881..3c7f5776ff 100644
> --- 
> a/meta/recipes-devtools/qemu/qemu/0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0005-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch
> @@ -1,7 +1,7 @@
> -From 375cae3dd6151ef33cae8f243f6a2c2da6c0c356 Mon Sep 17 00:00:00 2001
> +From 1c295069857b9850f15f2cd6b33b133ea641a454 Mon Sep 17 00:00:00 2001
>  From: Richard Purdie <[email protected]>
>  Date: Fri, 8 Jan 2021 17:27:06 +0000
> -Subject: [PATCH 06/12] qemu: Add some user space mmap tweaks to address musl
> +Subject: [PATCH 05/11] qemu: Add some user space mmap tweaks to address musl
>   32 bit
>  
>  When using qemu-i386 to build qemux86 webkitgtk on musl, it sits in an
> @@ -18,16 +18,15 @@ rather than ENOMEM so adjust the other part of the test 
> to this.
>  
>  Upstream-Status: Submitted 
> [https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg01355.html]
>  Signed-off-by: Richard Purdie <[email protected]
> -
>  ---
>   linux-user/mmap.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
>  
> -Index: qemu-8.0.0/linux-user/mmap.c
> -===================================================================
> ---- qemu-8.0.0.orig/linux-user/mmap.c
> -+++ qemu-8.0.0/linux-user/mmap.c
> -@@ -776,12 +776,16 @@ abi_long target_mremap(abi_ulong old_add
> +diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> +index be3b9a68eb..481286f01d 100644
> +--- a/linux-user/mmap.c
> ++++ b/linux-user/mmap.c
> +@@ -1060,12 +1060,16 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong 
> old_size,
>       int prot;
>       void *host_addr;
>   
> @@ -47,3 +46,6 @@ Index: qemu-8.0.0/linux-user/mmap.c
>           return -1;
>       }
>   
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch
> deleted file mode 100644
> index 5afb35ea0c..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -From 1234063488134ad1f541f56dd30caa7896905f06 Mon Sep 17 00:00:00 2001
> -From: Ilya Leoshkevich <[email protected]>
> -Date: Wed, 28 Feb 2024 10:25:18 -1000
> -Subject: [PATCH 5/5] tests/tcg: Check that shmat() does not break
> - /proc/self/maps
> -
> -Add a regression test for a recently fixed issue, where shmat()
> -desynced the guest and the host view of the address space and caused
> -open("/proc/self/maps") to SEGV.
> -
> -Upstream-Status: Submitted 
> [https://www.mail-archive.com/[email protected]/msg1026793.html]
> -
> -Signed-off-by: Ilya Leoshkevich <[email protected]>
> -Message-Id: <jwyuvao4apydvykmsnvacwshdgy3ixv7qvkh4dbxm3jkwgnttw@k4wpaayou7oq>
> -Signed-off-by: Richard Henderson <[email protected]>
> -Signed-off-by: Richard Purdie <[email protected]>
> ----
> - tests/tcg/multiarch/linux/linux-shmat-maps.c | 55 ++++++++++++++++++++
> - 1 file changed, 55 insertions(+)
> - create mode 100644 tests/tcg/multiarch/linux/linux-shmat-maps.c
> -
> -diff --git a/tests/tcg/multiarch/linux/linux-shmat-maps.c 
> b/tests/tcg/multiarch/linux/linux-shmat-maps.c
> -new file mode 100644
> -index 000000000..0ccf7a973
> ---- /dev/null
> -+++ b/tests/tcg/multiarch/linux/linux-shmat-maps.c
> -@@ -0,0 +1,55 @@
> -+/*
> -+ * Test that shmat() does not break /proc/self/maps.
> -+ *
> -+ * SPDX-License-Identifier: GPL-2.0-or-later
> -+ */
> -+#include <assert.h>
> -+#include <fcntl.h>
> -+#include <stdlib.h>
> -+#include <sys/ipc.h>
> -+#include <sys/shm.h>
> -+#include <unistd.h>
> -+
> -+int main(void)
> -+{
> -+    char buf[128];
> -+    int err, fd;
> -+    int shmid;
> -+    ssize_t n;
> -+    void *p;
> -+
> -+    shmid = shmget(IPC_PRIVATE, 1, IPC_CREAT | 0600);
> -+    assert(shmid != -1);
> -+
> -+    /*
> -+     * The original bug required a non-NULL address, which skipped the
> -+     * mmap_find_vma step, which could result in a host mapping smaller
> -+     * than the target mapping.  Choose an address at random.
> -+     */
> -+    p = shmat(shmid, (void *)0x800000, SHM_RND);
> -+    if (p == (void *)-1) {
> -+        /*
> -+         * Because we are now running the testcase for all guests for which
> -+         * we have a cross-compiler, the above random address might conflict
> -+         * with the guest executable in some way.  Rather than stopping,
> -+         * continue with a system supplied address, which should never fail.
> -+         */
> -+        p = shmat(shmid, NULL, 0);
> -+        assert(p != (void *)-1);
> -+    }
> -+
> -+    fd = open("/proc/self/maps", O_RDONLY);
> -+    assert(fd != -1);
> -+    do {
> -+        n = read(fd, buf, sizeof(buf));
> -+        assert(n >= 0);
> -+    } while (n != 0);
> -+    close(fd);
> -+
> -+    err = shmdt(p);
> -+    assert(err == 0);
> -+    err = shmctl(shmid, IPC_RMID, NULL);
> -+    assert(err == 0);
> -+
> -+    return EXIT_SUCCESS;
> -+}
> --- 
> -2.34.1
> -
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0007-qemu-Determinism-fixes.patch 
> b/meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch
> similarity index 71%
> rename from meta/recipes-devtools/qemu/qemu/0007-qemu-Determinism-fixes.patch
> rename to meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch
> index d3f965e070..f07054f19a 100644
> --- a/meta/recipes-devtools/qemu/qemu/0007-qemu-Determinism-fixes.patch
> +++ b/meta/recipes-devtools/qemu/qemu/0006-qemu-Determinism-fixes.patch
> @@ -1,7 +1,7 @@
> -From 50bab5c2605b609ea7ea154f57a9be96d656725a Mon Sep 17 00:00:00 2001
> +From 9d32df80e33a7541658858497f45bed1e59e3621 Mon Sep 17 00:00:00 2001
>  From: Richard Purdie <[email protected]>
>  Date: Mon, 1 Mar 2021 13:00:47 +0000
> -Subject: [PATCH 07/12] qemu: Determinism fixes
> +Subject: [PATCH 06/11] qemu: Determinism fixes
>  
>  When sources are included within debug information, a couple of areas of the
>  qemu build are not reproducible due to either full buildpaths or timestamps.
> @@ -11,16 +11,15 @@ meson to pass relative paths but we can fix that in the 
> script.
>  
>  Upstream-Status: Pending [some version of all/part of this may be accepted]
>  RP 2021/3/1
> -
>  ---
>   scripts/decodetree.py | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>  
> -Index: qemu-8.0.0/scripts/decodetree.py
> -===================================================================
> ---- qemu-8.0.0.orig/scripts/decodetree.py
> -+++ qemu-8.0.0/scripts/decodetree.py
> -@@ -1328,7 +1328,7 @@ def main():
> +diff --git a/scripts/decodetree.py b/scripts/decodetree.py
> +index e8b72da3a9..5cd86b1428 100644
> +--- a/scripts/decodetree.py
> ++++ b/scripts/decodetree.py
> +@@ -1558,7 +1558,7 @@ def main():
>       toppat = ExcMultiPattern(0)
>   
>       for filename in args:
> @@ -29,3 +28,6 @@ Index: qemu-8.0.0/scripts/decodetree.py
>           f = open(filename, 'rt', encoding='utf-8')
>           parse_file(f, toppat)
>           f.close()
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0008-tests-meson.build-use-relative-path-to-refer-to-file.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0007-tests-meson.build-use-relative-path-to-refer-to-file.patch
> similarity index 76%
> rename from 
> meta/recipes-devtools/qemu/qemu/0008-tests-meson.build-use-relative-path-to-refer-to-file.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0007-tests-meson.build-use-relative-path-to-refer-to-file.patch
> index a84364ccc1..74de158b2e 100644
> --- 
> a/meta/recipes-devtools/qemu/qemu/0008-tests-meson.build-use-relative-path-to-refer-to-file.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0007-tests-meson.build-use-relative-path-to-refer-to-file.patch
> @@ -1,7 +1,7 @@
> -From 2bf9388b801d4389e2d57e95a7897bfc1c42786e Mon Sep 17 00:00:00 2001
> +From 77ebf67d0c96f51da91c8499200ebd13f4dcdd68 Mon Sep 17 00:00:00 2001
>  From: Changqing Li <[email protected]>
>  Date: Thu, 14 Jan 2021 06:33:04 +0000
> -Subject: [PATCH 08/12] tests/meson.build: use relative path to refer to files
> +Subject: [PATCH 07/11] tests/meson.build: use relative path to refer to files
>  
>  Fix error like:
>  Fatal error: can't create 
> tests/ptimer-test.p/..._qemu-5.2.0_hw_core_ptimer.c.o: File name too long
> @@ -12,16 +12,15 @@ filename too long. Fixed by using relative path to refer 
> to files
>  Upstream-Status: Submitted [send to qemu-devel]
>  
>  Signed-off-by: Changqing Li <[email protected]>
> -
>  ---
>   tests/unit/meson.build | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>  
> -Index: qemu-8.0.0/tests/unit/meson.build
> -===================================================================
> ---- qemu-8.0.0.orig/tests/unit/meson.build
> -+++ qemu-8.0.0/tests/unit/meson.build
> -@@ -46,7 +46,7 @@ tests = {
> +diff --git a/tests/unit/meson.build b/tests/unit/meson.build
> +index 228a21d03c..272fb4c6ca 100644
> +--- a/tests/unit/meson.build
> ++++ b/tests/unit/meson.build
> +@@ -47,7 +47,7 @@ tests = {
>     'test-keyval': [testqapi],
>     'test-logging': [],
>     'test-uuid': [],
> @@ -30,7 +29,7 @@ Index: qemu-8.0.0/tests/unit/meson.build
>     'test-qapi-util': [],
>     'test-interval-tree': [],
>     'test-xs-node': [qom],
> -@@ -136,7 +136,7 @@ if have_system
> +@@ -138,7 +138,7 @@ if have_system
>       'test-util-sockets': ['socket-helpers.c'],
>       'test-base64': [],
>       'test-bufferiszero': [],
> @@ -39,3 +38,6 @@ Index: qemu-8.0.0/tests/unit/meson.build
>       'test-vmstate': [migration, io],
>       'test-yank': ['socket-helpers.c', qom, io, chardev]
>     }
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch
> similarity index 80%
> rename from 
> meta/recipes-devtools/qemu/qemu/0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch
> index 4de6cc2445..2e28590e11 100644
> --- 
> a/meta/recipes-devtools/qemu/qemu/0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch
> @@ -1,7 +1,7 @@
> -From ebf4bb2f51da83af0c61480414cfa156f7308b34 Mon Sep 17 00:00:00 2001
> +From 21b159a11bbcb1eeb26f12456e4c3fd62a06cbec Mon Sep 17 00:00:00 2001
>  From: Khem Raj <[email protected]>
>  Date: Mon, 21 Mar 2022 10:09:38 -0700
> -Subject: [PATCH 09/12] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed 
> linux
> +Subject: [PATCH 08/11] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed 
> linux
>   systems
>  
>  linux only wires MAP_SYNC and MAP_SHARED_VALIDATE for architectures
> @@ -13,15 +13,14 @@ Upstream-Status: Submitted 
> [https://lists.nongnu.org/archive/html/qemu-devel/202
>  Signed-off-by: Khem Raj <[email protected]>
>  Cc: Zhang Yi <[email protected]>
>  Cc: Michael S. Tsirkin <[email protected]>
> -
>  ---
>   util/mmap-alloc.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
>  
> -Index: qemu-8.0.0/util/mmap-alloc.c
> -===================================================================
> ---- qemu-8.0.0.orig/util/mmap-alloc.c
> -+++ qemu-8.0.0/util/mmap-alloc.c
> +diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c
> +index ed14f9c64d..038f5b4b55 100644
> +--- a/util/mmap-alloc.c
> ++++ b/util/mmap-alloc.c
>  @@ -10,14 +10,18 @@
>    * later.  See the COPYING file in the top-level directory.
>    */
> @@ -44,3 +43,6 @@ Index: qemu-8.0.0/util/mmap-alloc.c
>   #include "qemu/mmap-alloc.h"
>   #include "qemu/host-utils.h"
>   #include "qemu/cutils.h"
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch
> similarity index 81%
> rename from 
> meta/recipes-devtools/qemu/qemu/0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch
> index ceae67be64..7577249d39 100644
> --- 
> a/meta/recipes-devtools/qemu/qemu/0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch
> @@ -1,7 +1,7 @@
> -From 71f14902256e3c3529710b713e1ea43100bf4c40 Mon Sep 17 00:00:00 2001
> +From 23de30079dbf47a8026faddd550a9e181d609c8f Mon Sep 17 00:00:00 2001
>  From: Khem Raj <[email protected]>
>  Date: Sat, 17 Dec 2022 08:37:46 -0800
> -Subject: [PATCH 2/2] linux-user: Replace use of lfs64 related functions and
> +Subject: [PATCH 09/11] linux-user: Replace use of lfs64 related functions and
>   macros
>  
>  Builds defines -D_FILE_OFFSET_BITS=64 which makes the original functions
> @@ -16,11 +16,11 @@ Cc: Laurent Vivier <[email protected]>
>   linux-user/syscall.c | 153 +++++++++++--------------------------------
>   1 file changed, 39 insertions(+), 114 deletions(-)
>  
> -Index: qemu-8.0.0/linux-user/syscall.c
> -===================================================================
> ---- qemu-8.0.0.orig/linux-user/syscall.c
> -+++ qemu-8.0.0/linux-user/syscall.c
> -@@ -761,8 +761,8 @@ safe_syscall6(ssize_t, copy_file_range,
> +diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> +index 18f09f1f07..1b7c50a2a7 100644
> +--- a/linux-user/syscall.c
> ++++ b/linux-user/syscall.c
> +@@ -761,8 +761,8 @@ safe_syscall6(ssize_t, copy_file_range, int, infd, 
> loff_t *, pinoff,
>    */
>   #define safe_ioctl(...) safe_syscall(__NR_ioctl, __VA_ARGS__)
>   /* Similarly for fcntl. Note that callers must always:
> @@ -31,7 +31,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>    * This will then work and use a 64-bit offset for both 32-bit and 64-bit 
> hosts.
>    */
>   #ifdef __NR_fcntl64
> -@@ -6813,13 +6813,13 @@ static int target_to_host_fcntl_cmd(int
> +@@ -6739,13 +6739,13 @@ static int target_to_host_fcntl_cmd(int cmd)
>           ret = cmd;
>           break;
>       case TARGET_F_GETLK:
> @@ -48,7 +48,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>           break;
>       case TARGET_F_GETOWN:
>           ret = F_GETOWN;
> -@@ -6833,17 +6833,6 @@ static int target_to_host_fcntl_cmd(int
> +@@ -6759,17 +6759,6 @@ static int target_to_host_fcntl_cmd(int cmd)
>       case TARGET_F_SETSIG:
>           ret = F_SETSIG;
>           break;
> @@ -66,7 +66,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>       case TARGET_F_SETLEASE:
>           ret = F_SETLEASE;
>           break;
> -@@ -6895,8 +6884,8 @@ static int target_to_host_fcntl_cmd(int
> +@@ -6821,8 +6810,8 @@ static int target_to_host_fcntl_cmd(int cmd)
>        * them to 5, 6 and 7 before making the syscall(). Since we make the
>        * syscall directly, adjust to what is supported by the kernel.
>        */
> @@ -77,7 +77,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>       }
>   #endif
>   
> -@@ -6929,55 +6918,11 @@ static int host_to_target_flock(int type
> +@@ -6855,55 +6844,11 @@ static int host_to_target_flock(int type)
>       return type;
>   }
>   
> @@ -136,7 +136,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>       abi_short l_type;
>       abi_short l_whence;
>       abi_llong l_start;
> -@@ -6985,10 +6930,10 @@ struct target_oabi_flock64 {
> +@@ -6911,10 +6856,10 @@ struct target_oabi_flock64 {
>       abi_int   l_pid;
>   } QEMU_PACKED;
>   
> @@ -149,7 +149,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>       int l_type;
>   
>       if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) {
> -@@ -7009,10 +6954,10 @@ static inline abi_long copy_from_user_oa
> +@@ -6935,10 +6880,10 @@ static inline abi_long 
> copy_from_user_oabi_flock64(struct flock64 *fl,
>       return 0;
>   }
>   
> @@ -163,7 +163,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>       short l_type;
>   
>       if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) {
> -@@ -7030,10 +6975,10 @@ static inline abi_long copy_to_user_oabi
> +@@ -6956,10 +6901,10 @@ static inline abi_long 
> copy_to_user_oabi_flock64(abi_ulong target_flock_addr,
>   }
>   #endif
>   
> @@ -176,7 +176,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>       int l_type;
>   
>       if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) {
> -@@ -7054,10 +6999,10 @@ static inline abi_long copy_from_user_fl
> +@@ -6980,10 +6925,10 @@ static inline abi_long copy_from_user_flock64(struct 
> flock64 *fl,
>       return 0;
>   }
>   
> @@ -190,7 +190,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>       short l_type;
>   
>       if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) {
> -@@ -7076,7 +7021,7 @@ static inline abi_long copy_to_user_floc
> +@@ -7002,7 +6947,7 @@ static inline abi_long copy_to_user_flock64(abi_ulong 
> target_flock_addr,
>   
>   static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
>   {
> @@ -199,7 +199,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>   #ifdef F_GETOWN_EX
>       struct f_owner_ex fox;
>       struct target_f_owner_ex *target_fox;
> -@@ -7089,6 +7034,7 @@ static abi_long do_fcntl(int fd, int cmd
> +@@ -7015,6 +6960,7 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong 
> arg)
>   
>       switch(cmd) {
>       case TARGET_F_GETLK:
> @@ -207,7 +207,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>           ret = copy_from_user_flock(&fl64, arg);
>           if (ret) {
>               return ret;
> -@@ -7098,32 +7044,11 @@ static abi_long do_fcntl(int fd, int cmd
> +@@ -7024,32 +6970,11 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong 
> arg)
>               ret = copy_to_user_flock(arg, &fl64);
>           }
>           break;
> @@ -241,7 +241,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>           if (ret) {
>               return ret;
>           }
> -@@ -7348,7 +7273,7 @@ static inline abi_long target_truncate64
> +@@ -7278,7 +7203,7 @@ static inline abi_long target_truncate64(CPUArchState 
> *cpu_env, const char *arg1
>           arg2 = arg3;
>           arg3 = arg4;
>       }
> @@ -250,7 +250,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>   }
>   #endif
>   
> -@@ -7362,7 +7287,7 @@ static inline abi_long target_ftruncate6
> +@@ -7292,7 +7217,7 @@ static inline abi_long target_ftruncate64(CPUArchState 
> *cpu_env, abi_long arg1,
>           arg2 = arg3;
>           arg3 = arg4;
>       }
> @@ -259,7 +259,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>   }
>   #endif
>   
> -@@ -8598,7 +8523,7 @@ static int do_getdents(abi_long dirfd, a
> +@@ -8667,7 +8592,7 @@ static int do_getdents(abi_long dirfd, abi_long arg2, 
> abi_long count)
>       void *tdirp;
>       int hlen, hoff, toff;
>       int hreclen, treclen;
> @@ -268,7 +268,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>   
>       hdirp = g_try_malloc(count);
>       if (!hdirp) {
> -@@ -8651,7 +8576,7 @@ static int do_getdents(abi_long dirfd, a
> +@@ -8720,7 +8645,7 @@ static int do_getdents(abi_long dirfd, abi_long arg2, 
> abi_long count)
>                * Return what we have, resetting the file pointer to the
>                * location of the first record not returned.
>                */
> @@ -277,7 +277,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>               break;
>           }
>   
> -@@ -8685,7 +8610,7 @@ static int do_getdents64(abi_long dirfd,
> +@@ -8754,7 +8679,7 @@ static int do_getdents64(abi_long dirfd, abi_long 
> arg2, abi_long count)
>       void *tdirp;
>       int hlen, hoff, toff;
>       int hreclen, treclen;
> @@ -286,7 +286,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>   
>       hdirp = g_try_malloc(count);
>       if (!hdirp) {
> -@@ -8727,7 +8652,7 @@ static int do_getdents64(abi_long dirfd,
> +@@ -8796,7 +8721,7 @@ static int do_getdents64(abi_long dirfd, abi_long 
> arg2, abi_long count)
>                * Return what we have, resetting the file pointer to the
>                * location of the first record not returned.
>                */
> @@ -295,7 +295,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>               break;
>           }
>   
> -@@ -11158,7 +11083,7 @@ static abi_long do_syscall1(CPUArchState
> +@@ -11527,7 +11452,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, 
> int num, abi_long arg1,
>                   return -TARGET_EFAULT;
>               }
>           }
> @@ -304,7 +304,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>           unlock_user(p, arg2, ret);
>           return ret;
>       case TARGET_NR_pwrite64:
> -@@ -11175,7 +11100,7 @@ static abi_long do_syscall1(CPUArchState
> +@@ -11544,7 +11469,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, 
> int num, abi_long arg1,
>                   return -TARGET_EFAULT;
>               }
>           }
> @@ -313,7 +313,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>           unlock_user(p, arg2, 0);
>           return ret;
>   #endif
> -@@ -11998,14 +11923,14 @@ static abi_long do_syscall1(CPUArchState
> +@@ -12404,14 +12329,14 @@ static abi_long do_syscall1(CPUArchState *cpu_env, 
> int num, abi_long arg1,
>       case TARGET_NR_fcntl64:
>       {
>           int cmd;
> @@ -333,7 +333,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>           }
>   #endif
>   
> -@@ -12015,7 +11940,7 @@ static abi_long do_syscall1(CPUArchState
> +@@ -12421,7 +12346,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, 
> int num, abi_long arg1,
>           }
>   
>           switch(arg2) {
> @@ -342,7 +342,7 @@ Index: qemu-8.0.0/linux-user/syscall.c
>               ret = copyfrom(&fl, arg3);
>               if (ret) {
>                   break;
> -@@ -12026,8 +11951,8 @@ static abi_long do_syscall1(CPUArchState
> +@@ -12432,8 +12357,8 @@ static abi_long do_syscall1(CPUArchState *cpu_env, 
> int num, abi_long arg1,
>               }
>           break;
>   
> @@ -353,3 +353,6 @@ Index: qemu-8.0.0/linux-user/syscall.c
>               ret = copyfrom(&fl, arg3);
>               if (ret) {
>                   break;
> +-- 
> +2.44.0
> +
> diff --git a/meta/recipes-devtools/qemu/qemu/fixedmeson.patch 
> b/meta/recipes-devtools/qemu/qemu/0010-configure-lookup-meson-exutable-from-PATH.patch
> similarity index 53%
> rename from meta/recipes-devtools/qemu/qemu/fixedmeson.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0010-configure-lookup-meson-exutable-from-PATH.patch
> index 9047f66dc3..98ce85a8cf 100644
> --- a/meta/recipes-devtools/qemu/qemu/fixedmeson.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0010-configure-lookup-meson-exutable-from-PATH.patch
> @@ -1,10 +1,18 @@
> +From e12a93174f9b652604dda8d8464b9559b62b29d5 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= <[email protected]>
> +Date: Wed, 22 May 2024 14:02:55 +0200
> +Subject: [PATCH 10/11] configure: lookup meson exutable from PATH
> +
>  Upstream-Status: Inappropriate [workaround, would need a real fix for 
> upstream]
> +---
> + configure | 7 +------
> + 1 file changed, 1 insertion(+), 6 deletions(-)
>  
> -Index: qemu-8.2.0/configure
> -===================================================================
> ---- qemu-8.2.0.orig/configure
> -+++ qemu-8.2.0/configure
> -@@ -955,12 +955,7 @@ fi
> +diff --git a/configure b/configure
> +index 3cd736b139..482a1f8ef3 100755
> +--- a/configure
> ++++ b/configure
> +@@ -956,12 +956,7 @@ fi
>   $mkvenv ensuregroup --dir "${source_path}/python/wheels" \
>        ${source_path}/pythondeps.toml meson || exit 1
>   
> @@ -18,3 +26,6 @@ Index: qemu-8.2.0/configure
>   
>   # Conditionally ensure Sphinx is installed.
>   
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch
> deleted file mode 100644
> index 6caf35b634..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -CVE: CVE-2022-1050
> -Upstream-Status: Submitted 
> [https://lore.kernel.org/qemu-devel/[email protected]/]
> -Signed-off-by: Ross Burton <[email protected]>
> -
> -From dbdef95c272e8f3ec037c3db4197c66002e30995 Mon Sep 17 00:00:00 2001
> -From: Yuval Shaia <[email protected]>
> -Date: Sun, 3 Apr 2022 12:52:34 +0300
> -Subject: [PATCH] hw/pvrdma: Protect against buggy or malicious guest driver
> -
> -Guest driver might execute HW commands when shared buffers are not yet
> -allocated.
> -This could happen on purpose (malicious guest) or because of some other
> -guest/host address mapping error.
> -We need to protect againts such case.
> -
> -Fixes: CVE-2022-1050
> -
> -Reported-by: Raven <[email protected]>
> -Signed-off-by: Yuval Shaia <[email protected]>
> ----
> - hw/rdma/vmw/pvrdma_cmd.c | 6 ++++++
> - 1 file changed, 6 insertions(+)
> -
> -Index: qemu-8.0.0/hw/rdma/vmw/pvrdma_cmd.c
> -===================================================================
> ---- qemu-8.0.0.orig/hw/rdma/vmw/pvrdma_cmd.c
> -+++ qemu-8.0.0/hw/rdma/vmw/pvrdma_cmd.c
> -@@ -782,6 +782,12 @@ int pvrdma_exec_cmd(PVRDMADev *dev)
> -             goto out;
> -     }
> - 
> -+    if (!dsr_info->dsr) {
> -+            /* Buggy or malicious guest driver */
> -+            rdma_error_report("Exec command without dsr, req or rsp 
> buffers");
> -+            goto out;
> -+    }
> -+
> -     if (dsr_info->req->hdr.cmd >= sizeof(cmd_handlers) /
> -                       sizeof(struct cmd_handler)) {
> -         rdma_error_report("Unsupported command");
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
> deleted file mode 100644
> index cc53b1eedd..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
> +++ /dev/null
> @@ -1,282 +0,0 @@
> -From fa9bcabe2387bb230ef82d62827ad6f93b8a1e61 Mon Sep 17 00:00:00 2001
> -From: Frederic Konrad <[email protected]>
> -Date: Wed, 17 Jan 2024 18:15:06 +0000
> -Subject: [PATCH 1/2] linux-user/*: workaround for missing MAP_FIXED_NOREPLACE
> -
> -QEMU v8.1.0 recently requires MAP_FIXED_NOREPLACE flags implementation for 
> mmap.
> -
> -This is missing from ubuntu 18.04, thus this patch catches the mmap calls 
> which
> -could use that new flag and forwards them to mmap when MAP_FIXED_NOREPLACE
> -flag isn't set or emulates them by checking the returned address w.r.t the
> -requested address.
> -
> -Signed-off-by: Frederic Konrad <[email protected]>
> -Signed-off-by: Francisco Iglesias <[email protected]>
> -
> -Upstream-Status: Inappropriate [OE specific]
> -
> -The upstream only supports the last two major releases of an OS.  The ones
> -they have declared all have kernel 4.17 or newer.
> -
> -See:
> -https://xilinx.slack.com/archives/D04G2647CTV/p1705074697942019
> -
> -https://www.qemu.org/docs/master/about/build-platforms.html
> -
> - The project aims to support the most recent major version at all times for 
> up
> - to five years after its initial release. Support for the previous major
> - version will be dropped 2 years after the new major version is released or
> - when the vendor itself drops support, whichever comes first.
> -
> -Signed-off-by: Mark Hatle <[email protected]>
> ----
> - linux-user/elfload.c    |  7 +++--
> - linux-user/meson.build  |  1 +
> - linux-user/mmap-fixed.c | 63 +++++++++++++++++++++++++++++++++++++++++
> - linux-user/mmap-fixed.h | 39 +++++++++++++++++++++++++
> - linux-user/mmap.c       | 31 +++++++++++---------
> - linux-user/syscall.c    |  1 +
> - 6 files changed, 125 insertions(+), 17 deletions(-)
> - create mode 100644 linux-user/mmap-fixed.c
> - create mode 100644 linux-user/mmap-fixed.h
> -
> -Index: qemu-8.2.1/linux-user/elfload.c
> -===================================================================
> ---- qemu-8.2.1.orig/linux-user/elfload.c
> -+++ qemu-8.2.1/linux-user/elfload.c
> -@@ -22,6 +22,7 @@
> - #include "qemu/error-report.h"
> - #include "target_signal.h"
> - #include "accel/tcg/debuginfo.h"
> -+#include "mmap-fixed.h"
> - 
> - #ifdef TARGET_ARM
> - #include "target/arm/cpu-features.h"
> -@@ -2765,9 +2766,9 @@ static abi_ulong create_elf_tables(abi_u
> - static int pgb_try_mmap(uintptr_t addr, uintptr_t addr_last, bool keep)
> - {
> -     size_t size = addr_last - addr + 1;
> --    void *p = mmap((void *)addr, size, PROT_NONE,
> --                   MAP_ANONYMOUS | MAP_PRIVATE |
> --                   MAP_NORESERVE | MAP_FIXED_NOREPLACE, -1, 0);
> -+    void *p = mmap_fixed_noreplace((void *)addr, size, PROT_NONE,
> -+                                   MAP_ANONYMOUS | MAP_PRIVATE |
> -+                                   MAP_NORESERVE | MAP_FIXED_NOREPLACE, -1, 
> 0);
> -     int ret;
> - 
> -     if (p == MAP_FAILED) {
> -Index: qemu-8.2.1/linux-user/meson.build
> -===================================================================
> ---- qemu-8.2.1.orig/linux-user/meson.build
> -+++ qemu-8.2.1/linux-user/meson.build
> -@@ -14,6 +14,7 @@ linux_user_ss.add(files(
> -   'linuxload.c',
> -   'main.c',
> -   'mmap.c',
> -+  'mmap-fixed.c',
> -   'signal.c',
> -   'strace.c',
> -   'syscall.c',
> -Index: qemu-8.2.1/linux-user/mmap-fixed.c
> -===================================================================
> ---- /dev/null
> -+++ qemu-8.2.1/linux-user/mmap-fixed.c
> -@@ -0,0 +1,63 @@
> -+/*
> -+ * Workaround for MAP_FIXED_NOREPLACE
> -+ *
> -+ * Copyright (c) 2024, Advanced Micro Devices, Inc.
> -+ * Developed by Fred Konrad <[email protected]>
> -+ *
> -+ * Permission is hereby granted, free of charge, to any person obtaining a 
> copy
> -+ * of this software and associated documentation files (the "Software"), to 
> deal
> -+ * in the Software without restriction, including without limitation the 
> rights
> -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> -+ * copies of the Software, and to permit persons to whom the Software is
> -+ * furnished to do so, subject to the following conditions:
> -+ *
> -+ * The above copyright notice and this permission notice shall be included 
> in
> -+ * all copies or substantial portions of the Software.
> -+ *
> -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
> OR
> -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
> OTHER
> -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
> FROM,
> -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
> -+ * THE SOFTWARE.
> -+ */
> -+
> -+#include <sys/mman.h>
> -+#include <errno.h>
> -+
> -+#ifndef MAP_FIXED_NOREPLACE
> -+#include "mmap-fixed.h"
> -+
> -+void *mmap_fixed_noreplace(void *addr, size_t len, int prot, int flags,
> -+                                  int fd, off_t offset)
> -+{
> -+    void *retaddr;
> -+
> -+    if (!(flags & MAP_FIXED_NOREPLACE)) {
> -+        /* General case, use the regular mmap.  */
> -+        return mmap(addr, len, prot, flags, fd, offset);
> -+    }
> -+
> -+    /* Since MAP_FIXED_NOREPLACE is not implemented, try to emulate it.  */
> -+    flags = flags & ~(MAP_FIXED_NOREPLACE | MAP_FIXED);
> -+    retaddr = mmap(addr, len, prot, flags, fd, offset);
> -+    if ((retaddr == addr) || (retaddr == MAP_FAILED)) {
> -+        /*
> -+         * Either the map worked and we get the good address so it can be
> -+         * returned, or it failed and would have failed the same with
> -+         * MAP_FIXED*, in which case return MAP_FAILED.
> -+         */
> -+        return retaddr;
> -+    } else {
> -+        /*
> -+         * Page has been mapped but not at the requested address.. unmap it 
> and
> -+         * return EEXIST.
> -+         */
> -+        munmap(retaddr, len);
> -+        errno = EEXIST;
> -+        return MAP_FAILED;
> -+    }
> -+}
> -+
> -+#endif
> -Index: qemu-8.2.1/linux-user/mmap-fixed.h
> -===================================================================
> ---- /dev/null
> -+++ qemu-8.2.1/linux-user/mmap-fixed.h
> -@@ -0,0 +1,39 @@
> -+/*
> -+ * Workaround for MAP_FIXED_NOREPLACE
> -+ *
> -+ * Copyright (c) 2024, Advanced Micro Devices, Inc.
> -+ * Developed by Fred Konrad <[email protected]>
> -+ *
> -+ * Permission is hereby granted, free of charge, to any person obtaining a 
> copy
> -+ * of this software and associated documentation files (the "Software"), to 
> deal
> -+ * in the Software without restriction, including without limitation the 
> rights
> -+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> -+ * copies of the Software, and to permit persons to whom the Software is
> -+ * furnished to do so, subject to the following conditions:
> -+ *
> -+ * The above copyright notice and this permission notice shall be included 
> in
> -+ * all copies or substantial portions of the Software.
> -+ *
> -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
> OR
> -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
> OTHER
> -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
> FROM,
> -+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
> -+ * THE SOFTWARE.
> -+ */
> -+
> -+#ifndef MMAP_FIXED_H
> -+#define MMAP_FIXED_H
> -+
> -+#ifndef MAP_FIXED_NOREPLACE
> -+#define MAP_FIXED_NOREPLACE 0x100000
> -+
> -+void *mmap_fixed_noreplace(void *addr, size_t len, int prot, int flags,
> -+                           int fd, off_t offset);
> -+
> -+#else /* MAP_FIXED_NOREPLACE */
> -+#define mmap_fixed_noreplace mmap
> -+#endif /* MAP_FIXED_NOREPLACE */
> -+
> -+#endif /* MMAP_FIXED_H */
> -Index: qemu-8.2.1/linux-user/mmap.c
> -===================================================================
> ---- qemu-8.2.1.orig/linux-user/mmap.c
> -+++ qemu-8.2.1/linux-user/mmap.c
> -@@ -25,6 +25,7 @@
> - #include "user-mmap.h"
> - #include "target_mman.h"
> - #include "qemu/interval-tree.h"
> -+#include "mmap-fixed.h"
> - 
> - #ifdef TARGET_ARM
> - #include "target/arm/cpu-features.h"
> -@@ -273,7 +274,7 @@ int target_mprotect(abi_ulong start, abi
> - static int do_munmap(void *addr, size_t len)
> - {
> -     if (reserved_va) {
> --        void *ptr = mmap(addr, len, PROT_NONE,
> -+        void *ptr =  mmap_fixed_noreplace(addr, len, PROT_NONE,
> -                          MAP_FIXED | MAP_ANONYMOUS
> -                          | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
> -         return ptr == addr ? 0 : -1;
> -@@ -319,9 +320,9 @@ static bool mmap_frag(abi_ulong real_sta
> -          * outside of the fragment we need to map.  Allocate a new host
> -          * page to cover, discarding whatever else may have been present.
> -          */
> --        void *p = mmap(host_start, qemu_host_page_size,
> --                       target_to_host_prot(prot),
> --                       flags | MAP_ANONYMOUS, -1, 0);
> -+        void *p = mmap_fixed_noreplace(host_start, qemu_host_page_size,
> -+                                       target_to_host_prot(prot),
> -+                                       flags | MAP_ANONYMOUS, -1, 0);
> -         if (p != host_start) {
> -             if (p != MAP_FAILED) {
> -                 munmap(p, qemu_host_page_size);
> -@@ -420,8 +421,9 @@ abi_ulong mmap_find_vma(abi_ulong start,
> -          *  - mremap() with MREMAP_FIXED flag
> -          *  - shmat() with SHM_REMAP flag
> -          */
> --        ptr = mmap(g2h_untagged(addr), size, PROT_NONE,
> --                   MAP_ANONYMOUS | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
> -+        ptr = mmap_fixed_noreplace(g2h_untagged(addr), size, PROT_NONE,
> -+                                   MAP_ANONYMOUS | MAP_PRIVATE | 
> MAP_NORESERVE,
> -+                                   -1, 0);
> - 
> -         /* ENOMEM, if host address space has no memory */
> -         if (ptr == MAP_FAILED) {
> -@@ -615,16 +617,16 @@ abi_long target_mmap(abi_ulong start, ab
> -          * especially important if qemu_host_page_size >
> -          * qemu_real_host_page_size.
> -          */
> --        p = mmap(g2h_untagged(start), host_len, host_prot,
> --                 flags | MAP_FIXED | MAP_ANONYMOUS, -1, 0);
> -+        p = mmap_fixed_noreplace(g2h_untagged(start), host_len, host_prot,
> -+                                 flags | MAP_FIXED | MAP_ANONYMOUS, -1, 0);
> -         if (p == MAP_FAILED) {
> -             goto fail;
> -         }
> -         /* update start so that it points to the file position at 'offset' 
> */
> -         host_start = (uintptr_t)p;
> -         if (!(flags & MAP_ANONYMOUS)) {
> --            p = mmap(g2h_untagged(start), len, host_prot,
> --                     flags | MAP_FIXED, fd, host_offset);
> -+            p = mmap_fixed_noreplace(g2h_untagged(start), len, host_prot,
> -+                                     flags | MAP_FIXED, fd, host_offset);
> -             if (p == MAP_FAILED) {
> -                 munmap(g2h_untagged(start), host_len);
> -                 goto fail;
> -@@ -749,8 +751,9 @@ abi_long target_mmap(abi_ulong start, ab
> -             len1 = real_last - real_start + 1;
> -             want_p = g2h_untagged(real_start);
> - 
> --            p = mmap(want_p, len1, target_to_host_prot(target_prot),
> --                     flags, fd, offset1);
> -+            p = mmap_fixed_noreplace(want_p, len1,
> -+                                     target_to_host_prot(target_prot),
> -+                                     flags, fd, offset1);
> -             if (p != want_p) {
> -                 if (p != MAP_FAILED) {
> -                     munmap(p, len1);
> -Index: qemu-8.2.1/linux-user/syscall.c
> -===================================================================
> ---- qemu-8.2.1.orig/linux-user/syscall.c
> -+++ qemu-8.2.1/linux-user/syscall.c
> -@@ -145,6 +145,7 @@
> - #include "qapi/error.h"
> - #include "fd-trans.h"
> - #include "cpu_loop-common.h"
> -+#include "mmap-fixed.h"
> - 
> - #ifndef CLONE_IO
> - #define CLONE_IO                0x80000000      /* Clone io context */
> diff --git a/meta/recipes-devtools/qemu/qemu/no-pip.patch 
> b/meta/recipes-devtools/qemu/qemu/0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch
> similarity index 70%
> rename from meta/recipes-devtools/qemu/qemu/no-pip.patch
> rename to 
> meta/recipes-devtools/qemu/qemu/0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch
> index 92b2edbe9f..c7bb9b1b47 100644
> --- a/meta/recipes-devtools/qemu/qemu/no-pip.patch
> +++ 
> b/meta/recipes-devtools/qemu/qemu/0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch
> @@ -1,4 +1,8 @@
> -qemu: Ensure pip and the python venv aren't used for meson
> +From a93c2a6b2c9db9c4bd30298da43c37c5e5c6236e Mon Sep 17 00:00:00 2001
> +From: Richard Purdie <[email protected]>
> +Date: Wed, 22 May 2024 13:58:23 +0200
> +Subject: [PATCH 11/11] qemu: Ensure pip and the python venv aren't used for
> + meson
>  
>  Qemu wants to use a supported python version and a specific meson version
>  to "help" users and uses pip and creates a venv to do this. This is a 
> nightmare
> @@ -21,12 +25,15 @@ as it stands is a workaround.
>  
>  Upstream-Status: Inappropriate [oe specific]
>  Signed-off-by: Richard Purdie <[email protected]>
> +---
> + configure | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
>  
> -Index: qemu-8.2.0/configure
> -===================================================================
> ---- qemu-8.2.0.orig/configure
> -+++ qemu-8.2.0/configure
> -@@ -937,7 +937,7 @@ python="$(command -v "$python")"
> +diff --git a/configure b/configure
> +index 482a1f8ef3..0da4bf3e4d 100755
> +--- a/configure
> ++++ b/configure
> +@@ -938,14 +938,14 @@ python="$(command -v "$python")"
>   echo "python determined to be '$python'"
>   echo "python version: $($python --version)"
>   
> @@ -35,11 +42,14 @@ Index: qemu-8.2.0/configure
>   if test "$?" -ne 0 ; then
>       error_exit "python venv creation failed"
>   fi
> -@@ -945,6 +945,7 @@ fi
> + 
>   # Suppress writing compiled files
>   python="$python -B"
> - mkvenv="$python ${source_path}/python/scripts/mkvenv.py"
> +-mkvenv="$python ${source_path}/python/scripts/mkvenv.py"
>  +mkvenv=true
>   
>   # Finish preparing the virtual environment using vendored .whl files
>   
> +-- 
> +2.44.0
> +
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch
>  
> b/meta/recipes-devtools/qemu/qemu/0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch
> deleted file mode 100644
> index 48034a4680..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/0012-linux-user-workaround-for-missing-MAP_SHARED_VALIDAT.patch
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -From 5c73e53997df800a742f9cd7355f3045861984bb Mon Sep 17 00:00:00 2001
> -From: Frederic Konrad <[email protected]>
> -Date: Thu, 18 Jan 2024 10:43:44 +0000
> -Subject: [PATCH 2/2] linux-user/*: workaround for missing MAP_SHARED_VALIDATE
> -
> -QEMU v8.1.0 recently requires MAP_SHARED_VALIDATE flags implementation for 
> mmap.
> -
> -This is missing from the Ubuntu 18.04 compiler but looks like to be in the
> -kernel source.
> -
> -Signed-off-by: Frederic Konrad <[email protected]>
> -Signed-off-by: Francisco Iglesias <[email protected]>
> -
> -Upstream-Status: Inappropriate [OE specific]
> -
> -The upstream only supports the last two major releases of an OS.  The ones
> -they have declared all have kernel 4.17 or newer.
> -
> -See:
> -https://xilinx.slack.com/archives/D04G2647CTV/p1705074697942019
> -
> -https://www.qemu.org/docs/master/about/build-platforms.html
> -
> - The project aims to support the most recent major version at all times for 
> up
> - to five years after its initial release. Support for the previous major
> - version will be dropped 2 years after the new major version is released or
> - when the vendor itself drops support, whichever comes first.
> -
> -Signed-off-by: Mark Hatle <[email protected]>
> ----
> - linux-user/mmap-fixed.h | 4 ++++
> - 1 file changed, 4 insertions(+)
> -
> -diff --git a/linux-user/mmap-fixed.h b/linux-user/mmap-fixed.h
> -index ef6eef5114..ec86586c1f 100644
> ---- a/linux-user/mmap-fixed.h
> -+++ b/linux-user/mmap-fixed.h
> -@@ -26,6 +26,10 @@
> - #ifndef MMAP_FIXED_H
> - #define MMAP_FIXED_H
> - 
> -+#ifndef MAP_SHARED_VALIDATE
> -+#define MAP_SHARED_VALIDATE 0x03
> -+#endif
> -+
> - #ifndef MAP_FIXED_NOREPLACE
> - #define MAP_FIXED_NOREPLACE 0x100000
> - 
> --- 
> -2.34.1
> -
> diff --git 
> a/meta/recipes-devtools/qemu/qemu/4a8579ad8629b57a43daa62e46cc7af6e1078116.patch
>  
> b/meta/recipes-devtools/qemu/qemu/4a8579ad8629b57a43daa62e46cc7af6e1078116.patch
> deleted file mode 100644
> index 5ad859ebe6..0000000000
> --- 
> a/meta/recipes-devtools/qemu/qemu/4a8579ad8629b57a43daa62e46cc7af6e1078116.patch
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -From 4a8579ad8629b57a43daa62e46cc7af6e1078116 Mon Sep 17 00:00:00 2001
> -From: Richard Henderson <[email protected]>
> -Date: Tue, 13 Feb 2024 10:20:27 -1000
> -Subject: [PATCH] linux-user: Split out do_munmap
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Upstream-Status: Submitted 
> [https://gitlab.com/rth7680/qemu/-/commit/4a8579ad8629b57a43daa62e46cc7af6e1078116]
> -
> -Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
> -Signed-off-by: Richard Henderson <[email protected]>
> ----
> - linux-user/mmap.c | 23 ++++++++++++++++-------
> - 1 file changed, 16 insertions(+), 7 deletions(-)
> -
> -diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> -index 1bbfeb25b14..8ebcca44444 100644
> ---- a/linux-user/mmap.c
> -+++ b/linux-user/mmap.c
> -@@ -267,6 +267,21 @@ int target_mprotect(abi_ulong start, abi_ulong len, int 
> target_prot)
> -     return ret;
> - }
> - 
> -+/*
> -+ * Perform munmap on behalf of the target, with host parameters.
> -+ * If reserved_va, we must replace the memory reservation.
> -+ */
> -+static int do_munmap(void *addr, size_t len)
> -+{
> -+    if (reserved_va) {
> -+        void *ptr = mmap(addr, len, PROT_NONE,
> -+                         MAP_FIXED | MAP_ANONYMOUS
> -+                         | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
> -+        return ptr == addr ? 0 : -1;
> -+    }
> -+    return munmap(addr, len);
> -+}
> -+
> - /* map an incomplete host page */
> - static bool mmap_frag(abi_ulong real_start, abi_ulong start, abi_ulong last,
> -                       int prot, int flags, int fd, off_t offset)
> -@@ -854,13 +869,7 @@ static int mmap_reserve_or_unmap(abi_ulong start, 
> abi_ulong len)
> -     real_len = real_last - real_start + 1;
> -     host_start = g2h_untagged(real_start);
> - 
> --    if (reserved_va) {
> --        void *ptr = mmap(host_start, real_len, PROT_NONE,
> --                         MAP_FIXED | MAP_ANONYMOUS
> --                         | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
> --        return ptr == host_start ? 0 : -1;
> --    }
> --    return munmap(host_start, real_len);
> -+    return do_munmap(host_start, real_len);
> - }
> - 
> - int target_munmap(abi_ulong start, abi_ulong len)
> --- 
> -GitLab
> -
> diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2023-6683.patch 
> b/meta/recipes-devtools/qemu/qemu/CVE-2023-6683.patch
> deleted file mode 100644
> index 732cb6af18..0000000000
> --- a/meta/recipes-devtools/qemu/qemu/CVE-2023-6683.patch
> +++ /dev/null
> @@ -1,91 +0,0 @@
> -From 405484b29f6548c7b86549b0f961b906337aa68a Mon Sep 17 00:00:00 2001
> -From: Fiona Ebner <[email protected]>
> -Date: Wed, 24 Jan 2024 11:57:48 +0100
> -Subject: [PATCH] ui/clipboard: mark type as not available when there is no
> - data
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -With VNC, a client can send a non-extended VNC_MSG_CLIENT_CUT_TEXT
> -message with len=0. In qemu_clipboard_set_data(), the clipboard info
> -will be updated setting data to NULL (because g_memdup(data, size)
> -returns NULL when size is 0). If the client does not set the
> -VNC_ENCODING_CLIPBOARD_EXT feature when setting up the encodings, then
> -the 'request' callback for the clipboard peer is not initialized.
> -Later, because data is NULL, qemu_clipboard_request() can be reached
> -via vdagent_chr_write() and vdagent_clipboard_recv_request() and
> -there, the clipboard owner's 'request' callback will be attempted to
> -be called, but that is a NULL pointer.
> -
> -In particular, this can happen when using the KRDC (22.12.3) VNC
> -client.
> -
> -Another scenario leading to the same issue is with two clients (say
> -noVNC and KRDC):
> -
> -The noVNC client sets the extension VNC_FEATURE_CLIPBOARD_EXT and
> -initializes its cbpeer.
> -
> -The KRDC client does not, but triggers a vnc_client_cut_text() (note
> -it's not the _ext variant)). There, a new clipboard info with it as
> -the 'owner' is created and via qemu_clipboard_set_data() is called,
> -which in turn calls qemu_clipboard_update() with that info.
> -
> -In qemu_clipboard_update(), the notifier for the noVNC client will be
> -called, i.e. vnc_clipboard_notify() and also set vs->cbinfo for the
> -noVNC client. The 'owner' in that clipboard info is the clipboard peer
> -for the KRDC client, which did not initialize the 'request' function.
> -That sounds correct to me, it is the owner of that clipboard info.
> -
> -Then when noVNC sends a VNC_MSG_CLIENT_CUT_TEXT message (it did set
> -the VNC_FEATURE_CLIPBOARD_EXT feature correctly, so a check for it
> -passes), that clipboard info is passed to qemu_clipboard_request() and
> -the original segfault still happens.
> -
> -Fix the issue by handling updates with size 0 differently. In
> -particular, mark in the clipboard info that the type is not available.
> -
> -While at it, switch to g_memdup2(), because g_memdup() is deprecated.
> -
> -Cc: [email protected]
> -Fixes: CVE-2023-6683
> -Reported-by: Markus Frank <[email protected]>
> -Suggested-by: Marc-André Lureau <[email protected]>
> -Signed-off-by: Fiona Ebner <[email protected]>
> -Reviewed-by: Marc-André Lureau <[email protected]>
> -Tested-by: Markus Frank <[email protected]>
> -Message-ID: <[email protected]>
> -
> -CVE: CVE-2023-6683
> -
> -Upstream-Status: Backport 
> [https://github.com/qemu/qemu/commit/405484b29f6548c7b86549b0f961b906337aa68a]
> -Signed-off-by: Simone Weiß <[email protected]>
> -
> ----
> - ui/clipboard.c | 12 +++++++++---
> - 1 file changed, 9 insertions(+), 3 deletions(-)
> -
> -diff --git a/ui/clipboard.c b/ui/clipboard.c
> -index 3d14bffaf80f..b3f6fa3c9e1f 100644
> ---- a/ui/clipboard.c
> -+++ b/ui/clipboard.c
> -@@ -163,9 +163,15 @@ void qemu_clipboard_set_data(QemuClipboardPeer *peer,
> -     }
> - 
> -     g_free(info->types[type].data);
> --    info->types[type].data = g_memdup(data, size);
> --    info->types[type].size = size;
> --    info->types[type].available = true;
> -+    if (size) {
> -+        info->types[type].data = g_memdup2(data, size);
> -+        info->types[type].size = size;
> -+        info->types[type].available = true;
> -+    } else {
> -+        info->types[type].data = NULL;
> -+        info->types[type].size = 0;
> -+        info->types[type].available = false;
> -+    }
> - 
> -     if (update) {
> -         qemu_clipboard_update(info);
> diff --git a/meta/recipes-devtools/qemu/qemu_8.2.1.bb 
> b/meta/recipes-devtools/qemu/qemu_9.0.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/qemu/qemu_8.2.1.bb
> rename to meta/recipes-devtools/qemu/qemu_9.0.0.bb
> -- 
> 2.44.0
> 

> 
> 
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#199932): 
https://lists.openembedded.org/g/openembedded-core/message/199932
Mute This Topic: https://lists.openembedded.org/mt/106242475/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to