diff --git a/0001-block-introduce-max_hw_iov-for-use-in-scsi-generic.patch b/0001-block-introduce-max_hw_iov-for-use-in-scsi-generic.patch
deleted file mode 100644
index 25b06a7..0000000
--- a/0001-block-introduce-max_hw_iov-for-use-in-scsi-generic.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From cc071629539dc1f303175a7e2d4ab854c0a8b20f Mon Sep 17 00:00:00 2001
-From: Paolo Bonzini <pbonzini@redhat.com>
-Date: Thu, 23 Sep 2021 09:04:36 -0400
-Subject: [PATCH] block: introduce max_hw_iov for use in scsi-generic
-
-Linux limits the size of iovecs to 1024 (UIO_MAXIOV in the kernel
-sources, IOV_MAX in POSIX).  Because of this, on some host adapters
-requests with many iovecs are rejected with -EINVAL by the
-io_submit() or readv()/writev() system calls.
-
-In fact, the same limit applies to SG_IO as well.  To fix both the
-EINVAL and the possible performance issues from using fewer iovecs
-than allowed by Linux (some HBAs have max_segments as low as 128),
-introduce a separate entry in BlockLimits to hold the max_segments
-value from sysfs.  This new limit is used only for SG_IO and clamped
-to bs->bl.max_iov anyway, just like max_hw_transfer is clamped to
-bs->bl.max_transfer.
-
-Reported-by: Halil Pasic <pasic@linux.ibm.com>
-Cc: Hanna Reitz <hreitz@redhat.com>
-Cc: Kevin Wolf <kwolf@redhat.com>
-Cc: qemu-block@nongnu.org
-Cc: qemu-stable@nongnu.org
-Fixes: 18473467d5 ("file-posix: try BLKSECTGET on block devices too, do not round to power of 2", 2021-06-25)
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Message-Id: <20210923130436.1187591-1-pbonzini@redhat.com>
-Signed-off-by: Kevin Wolf <kwolf@redhat.com>
----
- block/block-backend.c          | 6 ++++++
- block/file-posix.c             | 2 +-
- block/io.c                     | 1 +
- hw/scsi/scsi-generic.c         | 2 +-
- include/block/block_int.h      | 7 +++++++
- include/sysemu/block-backend.h | 1 +
- 6 files changed, 17 insertions(+), 2 deletions(-)
-
-diff --git a/block/block-backend.c b/block/block-backend.c
-index 6140d133e2..ba2b5ebb10 100644
---- a/block/block-backend.c
-+++ b/block/block-backend.c
-@@ -1986,6 +1986,12 @@ uint32_t blk_get_max_transfer(BlockBackend *blk)
-     return ROUND_DOWN(max, blk_get_request_alignment(blk));
- }
- 
-+int blk_get_max_hw_iov(BlockBackend *blk)
-+{
-+    return MIN_NON_ZERO(blk->root->bs->bl.max_hw_iov,
-+                        blk->root->bs->bl.max_iov);
-+}
-+
- int blk_get_max_iov(BlockBackend *blk)
- {
-     return blk->root->bs->bl.max_iov;
-diff --git a/block/file-posix.c b/block/file-posix.c
-index c62e42743d..53be0bdc1b 100644
---- a/block/file-posix.c
-+++ b/block/file-posix.c
-@@ -1273,7 +1273,7 @@ static void raw_refresh_limits(BlockDriverState *bs, Error **errp)
- 
-         ret = hdev_get_max_segments(s->fd, &st);
-         if (ret > 0) {
--            bs->bl.max_iov = ret;
-+            bs->bl.max_hw_iov = ret;
-         }
-     }
- }
-diff --git a/block/io.c b/block/io.c
-index 18d345a87a..bb0a254def 100644
---- a/block/io.c
-+++ b/block/io.c
-@@ -136,6 +136,7 @@ static void bdrv_merge_limits(BlockLimits *dst, const BlockLimits *src)
-     dst->min_mem_alignment = MAX(dst->min_mem_alignment,
-                                  src->min_mem_alignment);
-     dst->max_iov = MIN_NON_ZERO(dst->max_iov, src->max_iov);
-+    dst->max_hw_iov = MIN_NON_ZERO(dst->max_hw_iov, src->max_hw_iov);
- }
- 
- typedef struct BdrvRefreshLimitsState {
-diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c
-index 665baf900e..0306ccc7b1 100644
---- a/hw/scsi/scsi-generic.c
-+++ b/hw/scsi/scsi-generic.c
-@@ -180,7 +180,7 @@ static int scsi_handle_inquiry_reply(SCSIGenericReq *r, SCSIDevice *s, int len)
-         page = r->req.cmd.buf[2];
-         if (page == 0xb0) {
-             uint64_t max_transfer = blk_get_max_hw_transfer(s->conf.blk);
--            uint32_t max_iov = blk_get_max_iov(s->conf.blk);
-+            uint32_t max_iov = blk_get_max_hw_iov(s->conf.blk);
- 
-             assert(max_transfer);
-             max_transfer = MIN_NON_ZERO(max_transfer, max_iov * qemu_real_host_page_size)
-diff --git a/include/block/block_int.h b/include/block/block_int.h
-index ffe86068d4..f4c75e8ba9 100644
---- a/include/block/block_int.h
-+++ b/include/block/block_int.h
-@@ -718,6 +718,13 @@ typedef struct BlockLimits {
-      */
-     uint64_t max_hw_transfer;
- 
-+    /* Maximal number of scatter/gather elements allowed by the hardware.
-+     * Applies whenever transfers to the device bypass the kernel I/O
-+     * scheduler, for example with SG_IO.  If larger than max_iov
-+     * or if zero, blk_get_max_hw_iov will fall back to max_iov.
-+     */
-+    int max_hw_iov;
-+
-     /* memory alignment, in bytes so that no bounce buffer is needed */
-     size_t min_mem_alignment;
- 
-diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h
-index 29d4fdbf63..82bae55161 100644
---- a/include/sysemu/block-backend.h
-+++ b/include/sysemu/block-backend.h
-@@ -211,6 +211,7 @@ uint32_t blk_get_request_alignment(BlockBackend *blk);
- uint32_t blk_get_max_transfer(BlockBackend *blk);
- uint64_t blk_get_max_hw_transfer(BlockBackend *blk);
- int blk_get_max_iov(BlockBackend *blk);
-+int blk_get_max_hw_iov(BlockBackend *blk);
- void blk_set_guest_block_size(BlockBackend *blk, int align);
- void *blk_try_blockalign(BlockBackend *blk, size_t size);
- void *blk_blockalign(BlockBackend *blk, size_t size);
--- 
-2.33.1
-
diff --git a/0001-nbd-server-Add-selinux-label-option.patch b/0001-nbd-server-Add-selinux-label-option.patch
deleted file mode 100644
index 4430336..0000000
--- a/0001-nbd-server-Add-selinux-label-option.patch
+++ /dev/null
@@ -1,315 +0,0 @@
-From 641c964a09a5b8e52b37d6060895801a393f4073 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Mon, 15 Nov 2021 14:29:43 -0600
-Subject: [PATCH] nbd/server: Add --selinux-label option
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Under SELinux, Unix domain sockets have two labels.  One is on the
-disk and can be set with commands such as chcon(1).  There is a
-different label stored in memory (called the process label).  This can
-only be set by the process creating the socket.  When using SELinux +
-SVirt and wanting qemu to be able to connect to a qemu-nbd instance,
-you must set both labels correctly first.
-
-For qemu-nbd the options to set the second label are awkward.  You can
-create the socket in a wrapper program and then exec into qemu-nbd.
-Or you could try something with LD_PRELOAD.
-
-This commit adds the ability to set the label straightforwardly on the
-command line, via the new --selinux-label flag.  (The name of the flag
-is the same as the equivalent nbdkit option.)
-
-A worked example showing how to use the new option can be found in
-this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1984938
-
-Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1984938
-Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
-Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
-
-[eblake: rebase to configure changes, reject --selinux-label if it is
-not compiled in or not used on a Unix socket]
-Note that we may relax some of these restrictions at a later date,
-such as making it possible to label a TCP socket, although it may be
-smarter to do so as a generic QMP action rather than more one-off
-command lines in qemu-nbd.
-Signed-off-by: Eric Blake <eblake@redhat.com>
-Message-Id: <20211115202944.615966-1-eblake@redhat.com>
-Reviewed-by: Thomas Huth <thuth@redhat.com>
-[eblake: adjust meson output as suggested by thuth]
-Signed-off-by: Eric Blake <eblake@redhat.com>
----
- meson.build                                   | 10 +++-
- meson_options.txt                             |  3 ++
- qemu-nbd.c                                    | 46 +++++++++++++++++++
- tests/docker/dockerfiles/centos8.docker       |  1 +
- .../dockerfiles/fedora-i386-cross.docker      |  1 +
- tests/docker/dockerfiles/fedora.docker        |  1 +
- tests/docker/dockerfiles/opensuse-leap.docker |  1 +
- tests/docker/dockerfiles/ubuntu1804.docker    |  1 +
- tests/docker/dockerfiles/ubuntu2004.docker    |  1 +
- 9 files changed, 64 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index b3e7ec0e92..7b3fcea684 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1064,6 +1064,11 @@ keyutils = dependency('libkeyutils', required: false,
- 
- has_gettid = cc.has_function('gettid')
- 
-+# libselinux
-+selinux = dependency('libselinux',
-+                     required: get_option('selinux'),
-+                     method: 'pkg-config', kwargs: static_kwargs)
-+
- # Malloc tests
- 
- malloc = []
-@@ -1291,6 +1296,7 @@ config_host_data.set('CONFIG_FUSE', fuse.found())
- config_host_data.set('CONFIG_FUSE_LSEEK', fuse_lseek.found())
- config_host_data.set('CONFIG_X11', x11.found())
- config_host_data.set('CONFIG_CFI', get_option('cfi'))
-+config_host_data.set('CONFIG_SELINUX', selinux.found())
- config_host_data.set('QEMU_VERSION', '"@0@"'.format(meson.project_version()))
- config_host_data.set('QEMU_VERSION_MAJOR', meson.project_version().split('.')[0])
- config_host_data.set('QEMU_VERSION_MINOR', meson.project_version().split('.')[1])
-@@ -2741,7 +2747,8 @@ if have_tools
-   qemu_io = executable('qemu-io', files('qemu-io.c'),
-              dependencies: [block, qemuutil], install: true)
-   qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
--               dependencies: [blockdev, qemuutil, gnutls], install: true)
-+               dependencies: [blockdev, qemuutil, gnutls, selinux],
-+               install: true)
- 
-   subdir('storage-daemon')
-   subdir('contrib/rdmacm-mux')
-@@ -3106,6 +3113,7 @@ summary_info += {'libpmem support':   libpmem.found()}
- summary_info += {'libdaxctl support': libdaxctl.found()}
- summary_info += {'libudev':           libudev.found()}
- summary_info += {'FUSE lseek':        fuse_lseek.found()}
-+summary_info += {'selinux':           selinux}
- summary(summary_info, bool_yn: true, section: 'Dependencies')
- 
- if not supported_cpus.contains(cpu)
-diff --git a/meson_options.txt b/meson_options.txt
-index a9a9b8f4c6..a5938500a3 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -155,3 +155,6 @@ option('slirp', type: 'combo', value: 'auto',
- option('fdt', type: 'combo', value: 'auto',
-        choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
-        description: 'Whether and how to find the libfdt library')
-+
-+option('selinux', type: 'feature', value: 'auto',
-+       description: 'SELinux support in qemu-nbd')
-diff --git a/qemu-nbd.c b/qemu-nbd.c
-index 26ffbf15af..94dc2a9cca 100644
---- a/qemu-nbd.c
-+++ b/qemu-nbd.c
-@@ -47,6 +47,10 @@
- #include "trace/control.h"
- #include "qemu-version.h"
- 
-+#ifdef CONFIG_SELINUX
-+#include <selinux/selinux.h>
-+#endif
-+
- #ifdef __linux__
- #define HAVE_NBD_DEVICE 1
- #else
-@@ -64,6 +68,7 @@
- #define QEMU_NBD_OPT_FORK          263
- #define QEMU_NBD_OPT_TLSAUTHZ      264
- #define QEMU_NBD_OPT_PID_FILE      265
-+#define QEMU_NBD_OPT_SELINUX_LABEL 266
- 
- #define MBR_SIZE 512
- 
-@@ -116,6 +121,9 @@ static void usage(const char *name)
- "  --fork                    fork off the server process and exit the parent\n"
- "                            once the server is running\n"
- "  --pid-file=PATH           store the server's process ID in the given file\n"
-+#ifdef CONFIG_SELINUX
-+"  --selinux-label=LABEL     set SELinux process label on listening socket\n"
-+#endif
- #if HAVE_NBD_DEVICE
- "\n"
- "Kernel NBD client support:\n"
-@@ -452,6 +460,7 @@ static const char *socket_activation_validate_opts(const char *device,
-                                                    const char *sockpath,
-                                                    const char *address,
-                                                    const char *port,
-+                                                   const char *selinux,
-                                                    bool list)
- {
-     if (device != NULL) {
-@@ -470,6 +479,10 @@ static const char *socket_activation_validate_opts(const char *device,
-         return "TCP port number can't be set when using socket activation";
-     }
- 
-+    if (selinux != NULL) {
-+        return "SELinux label can't be set when using socket activation";
-+    }
-+
-     if (list) {
-         return "List mode is incompatible with socket activation";
-     }
-@@ -532,6 +545,8 @@ int main(int argc, char **argv)
-         { "trace", required_argument, NULL, 'T' },
-         { "fork", no_argument, NULL, QEMU_NBD_OPT_FORK },
-         { "pid-file", required_argument, NULL, QEMU_NBD_OPT_PID_FILE },
-+        { "selinux-label", required_argument, NULL,
-+          QEMU_NBD_OPT_SELINUX_LABEL },
-         { NULL, 0, NULL, 0 }
-     };
-     int ch;
-@@ -558,6 +573,7 @@ int main(int argc, char **argv)
-     int old_stderr = -1;
-     unsigned socket_activation;
-     const char *pid_file_name = NULL;
-+    const char *selinux_label = NULL;
-     BlockExportOptions *export_opts;
- 
- #ifdef CONFIG_POSIX
-@@ -747,6 +763,9 @@ int main(int argc, char **argv)
-         case QEMU_NBD_OPT_PID_FILE:
-             pid_file_name = optarg;
-             break;
-+        case QEMU_NBD_OPT_SELINUX_LABEL:
-+            selinux_label = optarg;
-+            break;
-         }
-     }
- 
-@@ -786,6 +805,7 @@ int main(int argc, char **argv)
-         /* Using socket activation - check user didn't use -p etc. */
-         const char *err_msg = socket_activation_validate_opts(device, sockpath,
-                                                               bindto, port,
-+                                                              selinux_label,
-                                                               list);
-         if (err_msg != NULL) {
-             error_report("%s", err_msg);
-@@ -825,6 +845,18 @@ int main(int argc, char **argv)
-         }
-     }
- 
-+    if (selinux_label) {
-+#ifdef CONFIG_SELINUX
-+        if (sockpath == NULL && device == NULL) {
-+            error_report("--selinux-label is not permitted without --socket");
-+            exit(EXIT_FAILURE);
-+        }
-+#else
-+        error_report("SELinux support not enabled in this binary");
-+        exit(EXIT_FAILURE);
-+#endif
-+    }
-+
-     if (list) {
-         saddr = nbd_build_socket_address(sockpath, bindto, port);
-         return qemu_nbd_client_list(saddr, tlscreds, bindto);
-@@ -938,6 +970,13 @@ int main(int argc, char **argv)
-         } else {
-             backlog = MIN(shared, SOMAXCONN);
-         }
-+#ifdef CONFIG_SELINUX
-+        if (selinux_label && setsockcreatecon_raw(selinux_label) == -1) {
-+            error_report("Cannot set SELinux socket create context to %s: %s",
-+                         selinux_label, strerror(errno));
-+            exit(EXIT_FAILURE);
-+        }
-+#endif
-         saddr = nbd_build_socket_address(sockpath, bindto, port);
-         if (qio_net_listener_open_sync(server, saddr, backlog,
-                                        &local_err) < 0) {
-@@ -945,6 +984,13 @@ int main(int argc, char **argv)
-             error_report_err(local_err);
-             exit(EXIT_FAILURE);
-         }
-+#ifdef CONFIG_SELINUX
-+        if (selinux_label && setsockcreatecon_raw(NULL) == -1) {
-+            error_report("Cannot clear SELinux socket create context: %s",
-+                         strerror(errno));
-+            exit(EXIT_FAILURE);
-+        }
-+#endif
-     } else {
-         size_t i;
-         /* See comment in check_socket_activation above. */
-diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos8.docker
-index 46398c61ee..7f135f8e8c 100644
---- a/tests/docker/dockerfiles/centos8.docker
-+++ b/tests/docker/dockerfiles/centos8.docker
-@@ -51,6 +51,7 @@ ENV PACKAGES \
-     libpng-devel \
-     librbd-devel \
-     libseccomp-devel \
-+    libselinux-devel \
-     libslirp-devel \
-     libssh-devel \
-     libtasn1-devel \
-diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker
-index dbb8195eb1..91a7c51614 100644
---- a/tests/docker/dockerfiles/fedora-i386-cross.docker
-+++ b/tests/docker/dockerfiles/fedora-i386-cross.docker
-@@ -7,6 +7,7 @@ ENV PACKAGES \
-     gcc \
-     git \
-     libffi-devel.i686 \
-+    libselinux-devel.i686 \
-     libtasn1-devel.i686 \
-     libzstd-devel.i686 \
-     make \
-diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
-index eec1add7f6..c6fd7e1113 100644
---- a/tests/docker/dockerfiles/fedora.docker
-+++ b/tests/docker/dockerfiles/fedora.docker
-@@ -53,6 +53,7 @@ ENV PACKAGES \
-     libpng-devel \
-     librbd-devel \
-     libseccomp-devel \
-+    libselinux-devel \
-     libslirp-devel \
-     libssh-devel \
-     libtasn1-devel \
-diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
-index 5a8bee0289..3bbdb67f4f 100644
---- a/tests/docker/dockerfiles/opensuse-leap.docker
-+++ b/tests/docker/dockerfiles/opensuse-leap.docker
-@@ -55,6 +55,7 @@ ENV PACKAGES \
-     libpulse-devel \
-     librbd-devel \
-     libseccomp-devel \
-+    libselinux-devel \
-     libspice-server-devel \
-     libssh-devel \
-     libtasn1-devel \
-diff --git a/tests/docker/dockerfiles/ubuntu1804.docker b/tests/docker/dockerfiles/ubuntu1804.docker
-index 0880bf3e29..450fd06d0d 100644
---- a/tests/docker/dockerfiles/ubuntu1804.docker
-+++ b/tests/docker/dockerfiles/ubuntu1804.docker
-@@ -60,6 +60,7 @@ ENV PACKAGES \
-     libsdl2-dev \
-     libsdl2-image-dev \
-     libseccomp-dev \
-+    libselinux-dev \
-     libsnappy-dev \
-     libspice-protocol-dev \
-     libspice-server-dev \
-diff --git a/tests/docker/dockerfiles/ubuntu2004.docker b/tests/docker/dockerfiles/ubuntu2004.docker
-index 39de63d012..15a026be09 100644
---- a/tests/docker/dockerfiles/ubuntu2004.docker
-+++ b/tests/docker/dockerfiles/ubuntu2004.docker
-@@ -60,6 +60,7 @@ ENV PACKAGES \
-     libsdl2-dev \
-     libsdl2-image-dev \
-     libseccomp-dev \
-+    libselinux-dev \
-     libslirp-dev \
-     libsnappy-dev \
-     libspice-protocol-dev \
--- 
-2.32.0
-
diff --git a/0001-qemu-sockets-fix-unix-socket-path-copy-again.patch b/0001-qemu-sockets-fix-unix-socket-path-copy-again.patch
deleted file mode 100644
index d93d7fe..0000000
--- a/0001-qemu-sockets-fix-unix-socket-path-copy-again.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 118d527f2e4baec5fe8060b22a6212468b8e4d3f Mon Sep 17 00:00:00 2001
-From: Michael Tokarev <mjt@tls.msk.ru>
-Date: Wed, 1 Sep 2021 16:16:24 +0300
-Subject: [PATCH] qemu-sockets: fix unix socket path copy (again)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Commit 4cfd970ec188558daa6214f26203fe553fb1e01f added an
-assert which ensures the path within an address of a unix
-socket returned from the kernel is at least one byte and
-does not exceed sun_path buffer. Both of this constraints
-are wrong:
-
-A unix socket can be unnamed, in this case the path is
-completely empty (not even \0)
-
-And some implementations (notable linux) can add extra
-trailing byte (\0) _after_ the sun_path buffer if we
-passed buffer larger than it (and we do).
-
-So remove the assertion (since it causes real-life breakage)
-but at the same time fix the usage of sun_path. Namely,
-we should not access sun_path[0] if kernel did not return
-it at all (this is the case for unnamed sockets),
-and use the returned salen when copyig actual path as an
-upper constraint for the amount of bytes to copy - this
-will ensure we wont exceed the information provided by
-the kernel, regardless whenever there is a trailing \0
-or not. This also helps with unnamed sockets.
-
-Note the case of abstract socket, the sun_path is actually
-a blob and can contain \0 characters, - it should not be
-passed to g_strndup and the like, it should be accessed by
-memcpy-like functions.
-
-Fixes: 4cfd970ec188558daa6214f26203fe553fb1e01f
-Fixes: http://bugs.debian.org/993145
-Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
-Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
-Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
-CC: qemu-stable@nongnu.org
----
- util/qemu-sockets.c | 13 +++++--------
- 1 file changed, 5 insertions(+), 8 deletions(-)
-
-diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
-index f2f3676d1f..c5043999e9 100644
---- a/util/qemu-sockets.c
-+++ b/util/qemu-sockets.c
-@@ -1345,25 +1345,22 @@ socket_sockaddr_to_address_unix(struct sockaddr_storage *sa,
-     SocketAddress *addr;
-     struct sockaddr_un *su = (struct sockaddr_un *)sa;
- 
--    assert(salen >= sizeof(su->sun_family) + 1 &&
--           salen <= sizeof(struct sockaddr_un));
--
-     addr = g_new0(SocketAddress, 1);
-     addr->type = SOCKET_ADDRESS_TYPE_UNIX;
-+    salen -= offsetof(struct sockaddr_un, sun_path);
- #ifdef CONFIG_LINUX
--    if (!su->sun_path[0]) {
-+    if (salen > 0 && !su->sun_path[0]) {
-         /* Linux abstract socket */
--        addr->u.q_unix.path = g_strndup(su->sun_path + 1,
--                                        salen - sizeof(su->sun_family) - 1);
-+        addr->u.q_unix.path = g_strndup(su->sun_path + 1, salen - 1);
-         addr->u.q_unix.has_abstract = true;
-         addr->u.q_unix.abstract = true;
-         addr->u.q_unix.has_tight = true;
--        addr->u.q_unix.tight = salen < sizeof(*su);
-+        addr->u.q_unix.tight = salen < sizeof(su->sun_path);
-         return addr;
-     }
- #endif
- 
--    addr->u.q_unix.path = g_strndup(su->sun_path, sizeof(su->sun_path));
-+    addr->u.q_unix.path = g_strndup(su->sun_path, salen);
-     return addr;
- }
- #endif /* WIN32 */
diff --git a/0001-qxl-fix-pre-save-logic.patch b/0001-qxl-fix-pre-save-logic.patch
deleted file mode 100644
index ab92d63..0000000
--- a/0001-qxl-fix-pre-save-logic.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From eb94846280df3f1e2a91b6179fc05f9890b7e384 Mon Sep 17 00:00:00 2001
-From: Gerd Hoffmann <kraxel@redhat.com>
-Date: Fri, 10 Sep 2021 11:42:03 +0200
-Subject: [PATCH 1/1] qxl: fix pre-save logic
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Oops.  Logic is backwards.
-
-Fixes: 39b8a183e2f3 ("qxl: remove assert in qxl_pre_save.")
-Resolves: https://gitlab.com/qemu-project/qemu/-/issues/610
-Resolves: https://bugzilla.redhat.com//show_bug.cgi?id=2002907
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
-Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
-Message-Id: <20210910094203.3582378-1-kraxel@redhat.com>
----
- hw/display/qxl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/display/qxl.c b/hw/display/qxl.c
-index 43482d4364..29c80b4289 100644
---- a/hw/display/qxl.c
-+++ b/hw/display/qxl.c
-@@ -2252,7 +2252,7 @@ static int qxl_pre_save(void *opaque)
-     } else {
-         d->last_release_offset = (uint8_t *)d->last_release - ram_start;
-     }
--    if (d->last_release_offset < d->vga.vram_size) {
-+    if (d->last_release_offset >= d->vga.vram_size) {
-         return 1;
-     }
- 
--- 
-2.33.1
-
diff --git a/0001-target-i386-add-missing-bits-to-CR4_RESERVED_MASK.patch b/0001-target-i386-add-missing-bits-to-CR4_RESERVED_MASK.patch
deleted file mode 100644
index 225d3b4..0000000
--- a/0001-target-i386-add-missing-bits-to-CR4_RESERVED_MASK.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 45adec566b073b39f4edfc1307843d12fe8105c8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
-Date: Tue, 31 Aug 2021 18:50:33 +0100
-Subject: [PATCH 1/2] target/i386: add missing bits to CR4_RESERVED_MASK
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Booting Fedora kernels with -cpu max hangs very early in boot. Disabling
-the la57 CPUID bit fixes the problem. git bisect traced the regression to
-
-  commit 213ff024a2f92020290296cb9dc29c2af3d4a221 (HEAD, refs/bisect/bad)
-  Author: Lara Lazier <laramglazier@gmail.com>
-  Date:   Wed Jul 21 17:26:50 2021 +0200
-
-    target/i386: Added consistency checks for CR4
-
-    All MBZ bits in CR4 must be zero. (APM2 15.5)
-    Added reserved bitmask and added checks in both
-    helper_vmrun and helper_write_crN.
-
-    Signed-off-by: Lara Lazier <laramglazier@gmail.com>
-    Message-Id: <20210721152651.14683-2-laramglazier@gmail.com>
-    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-
-In this commit CR4_RESERVED_MASK is missing CR4_LA57_MASK and
-two others. Adding this lets Fedora kernels boot once again.
-
-Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
----
- target/i386/cpu.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/target/i386/cpu.h b/target/i386/cpu.h
-index 6c50d3ab4f..ce85f1a29d 100644
---- a/target/i386/cpu.h
-+++ b/target/i386/cpu.h
-@@ -257,6 +257,7 @@ typedef enum X86Seg {
-                 | CR4_DE_MASK | CR4_PSE_MASK | CR4_PAE_MASK \
-                 | CR4_MCE_MASK | CR4_PGE_MASK | CR4_PCE_MASK \
-                 | CR4_OSFXSR_MASK | CR4_OSXMMEXCPT_MASK |CR4_UMIP_MASK \
-+                | CR4_LA57_MASK | CR4_VMXE_MASK | CR4_SMXE_MASK \
-                 | CR4_FSGSBASE_MASK | CR4_PCIDE_MASK | CR4_OSXSAVE_MASK \
-                 | CR4_SMEP_MASK | CR4_SMAP_MASK | CR4_PKE_MASK | CR4_PKS_MASK))
- 
--- 
-2.32.0
-
diff --git a/0001-tests-tcg-Fix-PVH-test-with-binutils-2.36.patch b/0001-tests-tcg-Fix-PVH-test-with-binutils-2.36.patch
deleted file mode 100644
index cf01f1b..0000000
--- a/0001-tests-tcg-Fix-PVH-test-with-binutils-2.36.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 5ab2a54c262c61f64c22dbb49ade3e2db8a740bb Mon Sep 17 00:00:00 2001
-Message-Id: <5ab2a54c262c61f64c22dbb49ade3e2db8a740bb.1633708346.git.crobinso@redhat.com>
-From: Cole Robinson <crobinso@redhat.com>
-Date: Fri, 8 Oct 2021 11:47:45 -0400
-Subject: [PATCH] tests: tcg: Fix PVH test with binutils 2.36+
-
-binutils started adding a .note.gnu.property ELF section which
-makes the PVH test fail:
-
-  TEST    hello on x86_64
-qemu-system-x86_64: Error loading uncompressed kernel without PVH ELF Note
-
-Discard .note.gnu* while keeping the PVH .note bits intact.
-
-This also strips the build-id note, so drop the related comment.
-
-Signed-off-by: Cole Robinson <crobinso@redhat.com>
----
- tests/tcg/x86_64/system/kernel.ld | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/tests/tcg/x86_64/system/kernel.ld b/tests/tcg/x86_64/system/kernel.ld
-index 49c12b04ae..ca5d6bd850 100644
---- a/tests/tcg/x86_64/system/kernel.ld
-+++ b/tests/tcg/x86_64/system/kernel.ld
-@@ -16,7 +16,10 @@ SECTIONS {
- 		*(.rodata)
- 	} :text
- 
--        /* Keep build ID and PVH notes in same section */
-+        /DISCARD/ : {
-+                *(.note.gnu*)
-+        }
-+
-         .notes :  {
-                *(.note.*)
-         } :note
--- 
-2.32.0
-
diff --git a/qemu.spec b/qemu.spec
index b2ae7c8..15fd675 100644
--- a/qemu.spec
+++ b/qemu.spec
@@ -6,7 +6,7 @@
 %global libfdt_version 1.6.0
 %global libseccomp_version 2.4.0
 %global libusbx_version 1.0.23
-%global meson_version 0.55.3
+%global meson_version 0.58.2
 %global usbredir_version 0.7.1
 %global ipxe_version 20200823-5.git4bd064de
 
@@ -277,7 +277,7 @@ Obsoletes: %{name}-system-unicore32 <= %{epoch}:%{version}-%{release} \
 Obsoletes: %{name}-system-unicore32-core <= %{epoch}:%{version}-%{release}
 
 # Release candidate version tracking
-%dnl %global rcver rc4
+%global rcver rc3
 %if 0%{?rcver:1}
 %global rcrel .%{rcver}
 %global rcstr -%{rcver}
@@ -286,8 +286,8 @@ Obsoletes: %{name}-system-unicore32-core <= %{epoch}:%{version}-%{release}
 
 Summary: QEMU is a FAST! processor emulator
 Name: qemu
-Version: 6.1.0
-Release: 13%{?rcrel}%{?dist}
+Version: 6.2.0
+Release: 0.1%{?rcrel}%{?dist}
 Epoch: 2
 License: GPLv2 and BSD and MIT and CC-BY
 URL: http://www.qemu.org/
@@ -305,31 +305,9 @@ Source30: kvm-s390x.conf
 Source31: kvm-x86.conf
 Source36: README.tests
 
-# Fix -cpu max
-# https://bugzilla.redhat.com/show_bug.cgi?id=1999700
-Patch1: 0001-target-i386-add-missing-bits-to-CR4_RESERVED_MASK.patch
-
 # Fix assertion on armv7hl
 # https://bugzilla.redhat.com/show_bug.cgi?id=1999878
-Patch2: 0001-tcg-arm-Reduce-vector-alignment-requirement-for-NEON.patch
-
-# Fix qemu crash with vnc + libvirt virDomainOpenConsole
-Patch3: 0001-qemu-sockets-fix-unix-socket-path-copy-again.patch
-# Fix tcg PVH test with binutils 2.36+
-Patch4: 0001-tests-tcg-Fix-PVH-test-with-binutils-2.36.patch
-# Fix snapshot creation with qxl graphics
-# https://gitlab.com/qemu-project/qemu/-/issues/610
-# https://gitlab.com/qemu-project/qemu/-/commit/eb94846
-Patch5: 0001-qxl-fix-pre-save-logic.patch
-
-# Add support for qemu-nbd --selinux-relabel option
-# https://bugzilla.redhat.com/show_bug.cgi?id=1984938
-# Upstream in 6.2.
-Patch6: 0001-nbd-server-Add-selinux-label-option.patch
-
-# Fix iov length limits for scsi-generic
-# https://bugzilla.redhat.com/show_bug.cgi?id=2026747
-Patch7: 0001-block-introduce-max_hw_iov-for-use-in-scsi-generic.patch
+Patch1: 0001-tcg-arm-Reduce-vector-alignment-requirement-for-NEON.patch
 
 BuildRequires: meson >= %{meson_version}
 BuildRequires: zlib-devel
@@ -1253,7 +1231,6 @@ mkdir -p %{static_builddir}
   --disable-hax                    \\\
   --disable-hvf                    \\\
   --disable-iconv                  \\\
-  --disable-jemalloc               \\\
   --disable-kvm                    \\\
   --disable-libdaxctl              \\\
   --disable-libiscsi               \\\
@@ -1305,7 +1282,6 @@ mkdir -p %{static_builddir}
   --disable-strip                  \\\
   --disable-system                 \\\
   --disable-tcg                    \\\
-  --disable-tcmalloc               \\\
   --disable-tools                  \\\
   --disable-tpm                    \\\
   --disable-u2f                    \\\
@@ -1362,7 +1338,7 @@ run_configure() {
         --with-suffix="%{name}" \
         --firmwarepath="%firmwaredirs" \
         --meson="%{__meson}" \
-        --enable-trace-backend=dtrace \
+        --enable-trace-backends=dtrace \
         --with-coroutine=ucontext \
         --with-git=git \
         --tls-priority=@QEMU,SYSTEM \
@@ -1393,13 +1369,13 @@ run_configure \
 %endif
   --enable-bpf \
   --enable-cap-ng \
-  --enable-capstone \
+  --enable-capstone=system \
   --enable-coroutine-pool \
   --enable-curl \
   --enable-debug-info \
   --enable-docs \
 %if %{have_fdt}
-  --enable-fdt \
+  --enable-fdt=system \
 %endif
   --enable-gnutls \
   --enable-guest-agent \
@@ -1463,7 +1439,7 @@ run_configure \
   --enable-xkbcommon \
   \
   \
-  --audio-drv-list=pa,sdl,alsa,try-jack,oss \
+  --audio-drv-list=pa,sdl,alsa,jack,oss \
   --target-list-exclude=moxie-softmmu \
   --with-default-devices \
   --enable-auth-pam \
@@ -1554,7 +1530,7 @@ run_configure \
   --enable-attr \
   --enable-linux-user \
   --enable-tcg \
-  --disable-blobs \
+  --disable-install-blobs \
   --static
 
 %make_build
@@ -1639,12 +1615,12 @@ install -m 0644 -t %{buildroot}%{_datadir}/%{name}/tracetool/format scripts/trac
 # Create new directories and put them all under tests-src
 mkdir -p %{buildroot}%{testsdir}/python
 mkdir -p %{buildroot}%{testsdir}/tests
-mkdir -p %{buildroot}%{testsdir}/tests/acceptance
+mkdir -p %{buildroot}%{testsdir}/tests/avocado
 mkdir -p %{buildroot}%{testsdir}/tests/qemu-iotests
 mkdir -p %{buildroot}%{testsdir}/scripts/qmp
 
 # Install avocado_qemu tests
-cp -R %{qemu_kvm_build}/tests/acceptance/* %{buildroot}%{testsdir}/tests/acceptance/
+cp -R %{qemu_kvm_build}/tests/avocado/* %{buildroot}%{testsdir}/tests/avocado/
 
 # Install qemu.py and qmp/ scripts required to run avocado_qemu tests
 cp -R %{qemu_kvm_build}/python/qemu %{buildroot}%{testsdir}/python
@@ -2250,6 +2226,7 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
 %{_datadir}/%{name}/kvmvapic.bin
 %{_datadir}/%{name}/linuxboot.bin
 %{_datadir}/%{name}/multiboot.bin
+%{_datadir}/%{name}/multiboot_dma.bin
 %{_datadir}/%{name}/pvh.bin
 %{_datadir}/%{name}/qboot.rom
 %if %{need_qemu_kvm}
@@ -2270,6 +2247,9 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
 
 
 %changelog
+* Fri Dec 03 2021 Eduardo Lima (Etrunko) <etrunko@redhat.com> - 6.2.0-0.1-rc3
+- Rebase to qemu 6.2.0-rc3
+
 * Thu Nov 25 2021 Daniel P. Berrangé <berrange@redhat.com> - 6.1.0-13
 - Fix iovec limits with scsi-generic
 
diff --git a/sources b/sources
index 00e7175..a5c0d6f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (qemu-6.1.0.tar.xz) = 3378ae21c75b77ee6a759827f1fcf7b2a50a0fef07e3b0e89117108022a8d8655fa977e4d65596f4f24f7c735c6594d44b0c6f69732ea4465e88a7406b1d5d3c
+SHA512 (qemu-6.2.0-rc3.tar.xz) = e3da3da4b24d48c1458b498838180df18111a5fde4f1a2b85097219ea75acd4efd66ffeb1170fc8f0b0a759e5b91acc50b0fa8fda04eb037f10f4d1204db6f67