All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v5 1/3] crypto/openssl: add rsa and mod asym op
From: Stephen Hemminger @ 2018-07-23 16:50 UTC (permalink / raw)
  To: Shally Verma
  Cc: pablo.de.lara.guarch, dev, pathreya, nmurthy, Sunila Sahu,
	Ashish Gupta
In-Reply-To: <1532357165-8575-2-git-send-email-shally.verma@caviumnetworks.com>

On Mon, 23 Jul 2018 20:16:03 +0530
Shally Verma <shally.verma@caviumnetworks.com> wrote:

> +#define set_rsa_params(rsa, p, q, ret) \
> +	do {rsa->p = p; rsa->q = q; ret = 0; } while (0)
> +
> +#define set_rsa_crt_params(rsa, dmp1, dmq1, iqmp, ret) \
> +	do { \
> +		rsa->dmp1 = dmp1; \
> +		rsa->dmq1 = dmq1; \
> +		rsa->iqmp = iqmp; \
> +		ret = 0; \
> +	} while (0)
> +
> +#define set_rsa_keys(rsa, n, e, d, ret) \
> +	do { \
> +		rsa->n = n; rsa->e = e; rsa->d = d; ret = 0; \
> +	} while (0)
> +
> +#else
> +
> +#define set_rsa_params(rsa, p, q, ret) \
> +	(ret = !RSA_set0_factors(rsa, p, q))
> +
> +#define set_rsa_crt_params(rsa, dmp1, dmq1, iqmp, ret) \
> +	(ret = !RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp))
> +
> +/* n, e must be non-null, d can be NULL */
> +#define set_rsa_keys(rsa, n, e, d, ret) \
> +	(ret = !RSA_set0_key(rsa, n, e, d))
> +
> +#endif /* version < 10100000 */
> +
> +#endif /* __RTA_COMPAT_H__ */

Please use inline functions instead of macros.
The crypto code seems to favor macros?

Macro's have no type checking and are not faster anyway.

^ permalink raw reply

* Re: [PATCH] drm/amdgpu: Don't warn on destroying a pinned BO
From: Michel Dänzer @ 2018-07-23 16:50 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
In-Reply-To: <20180719153955.23910-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org>

On 2018-07-19 05:39 PM, Michel Dänzer wrote:
> From: Michel Dänzer <michel.daenzer@amd.com>
> 
> The warning turned out to be not so useful, as BO destruction tends to
> be deferred to a workqueue.
> 
> Also, we should be preventing any damage from this now, so not really
> important anymore to fix code doing this.
> 
> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index b12526ce1a9d..3010f0136de9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -89,7 +89,7 @@ static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo)
>  	struct amdgpu_device *adev = amdgpu_ttm_adev(tbo->bdev);
>  	struct amdgpu_bo *bo = ttm_to_amdgpu_bo(tbo);
>  
> -	if (WARN_ON_ONCE(bo->pin_count > 0))
> +	if (bo->pin_count > 0)
>  		amdgpu_bo_subtract_pin_size(bo);
>  
>  	if (bo->kfd_bo)
> 

Any feedback?


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply

* [PATCH] firmware: vpd: Fix section enabled flag on vpd_section_destroy
From: Anton Vasilyev @ 2018-07-23 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Anton Vasilyev, Dmitry Torokhov, Guenter Roeck, Samuel Holland,
	Pan Bian, linux-kernel, ldv-project

static struct ro_vpd and rw_vpd are initialized by vpd_sections_init()
in vpd_probe() based on header's ro and rw sizes.
In vpd_remove() vpd_section_destroy() performs deinitialization based
on enabled flag, which is set to true by vpd_sections_init().
This leads to call of vpd_section_destroy() on already destroyed section
for probe-release-probe-release sequence if first probe performs
ro_vpd initialization and second probe does not initialize it.

The patch adds changing enabled flag on vpd_section_destroy.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
---
 drivers/firmware/google/vpd.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/firmware/google/vpd.c b/drivers/firmware/google/vpd.c
index e9db895916c3..5347c17c7108 100644
--- a/drivers/firmware/google/vpd.c
+++ b/drivers/firmware/google/vpd.c
@@ -246,6 +246,7 @@ static int vpd_section_destroy(struct vpd_section *sec)
 		sysfs_remove_bin_file(vpd_kobj, &sec->bin_attr);
 		kfree(sec->raw_name);
 		memunmap(sec->baseaddr);
+		sec->enabled = false;
 	}
 
 	return 0;
-- 
2.18.0


^ permalink raw reply related

* Re: [PATCH mlx5-next] RDMA/mlx5: Don't use cached IRQ affinity mask
From: Jason Gunthorpe @ 2018-07-23 16:49 UTC (permalink / raw)
  To: Max Gurtovoy
  Cc: Steve Wise, 'Sagi Grimberg', 'Leon Romanovsky',
	'Doug Ledford', 'RDMA mailing list',
	'Saeed Mahameed', 'linux-netdev'
In-Reply-To: <f936d176-c56b-143e-3311-f6df48f633dd@mellanox.com>

On Fri, Jul 20, 2018 at 04:25:32AM +0300, Max Gurtovoy wrote:
> 
> >>>[ 2032.194376] nvme nvme0: failed to connect queue: 9 ret=-18
> >>
> >>queue 9 is not mapped (overlap).
> >>please try the bellow:
> >>
> >
> >This seems to work.  Here are three mapping cases:  each vector on its
> >own cpu, each vector on 1 cpu within the local numa node, and each
> >vector having all cpus in its numa node.  The 2nd mapping looks kinda
> >funny, but I think it achieved what you wanted?  And all the cases
> >resulted in successful connections.
> >
> 
> Thanks for testing this.
> I slightly improved the setting of the left CPUs and actually used Sagi's
> initial proposal.
> 
> Sagi,
> please review the attached patch and let me know if I should add your
> signature on it.
> I'll run some perf test early next week on it (meanwhile I run login/logout
> with different num_queues successfully and irq settings).
> 
> Steve,
> It will be great if you can apply the attached in your system and send your
> findings.
> 
> Regards,
> Max,

So the conlusion to this thread is that Leon's mlx5 patch needs to wait
until this block-mq patch is accepted?

Thanks,
Jason

^ permalink raw reply

* Re: [Qemu-devel] [PATCH v3 27/40] target/mips: Adjust behavior of Config3's ISAOnExc bit for nanoMIPS
From: Richard Henderson @ 2018-07-23 16:48 UTC (permalink / raw)
  To: Stefan Markovic, qemu-devel
  Cc: laurent, riku.voipio, philippe.mathieu.daude, aurelien, amarkovic,
	smarkovic, pjovanovic, pburton
In-Reply-To: <1532004912-13899-28-git-send-email-stefan.markovic@rt-rk.com>

On 07/19/2018 05:54 AM, Stefan Markovic wrote:
> -    if (env->insn_flags & ASE_MICROMIPS) {
> +    if ((env->insn_flags & ASE_MICROMIPS) &&
> +        !(env->insn_flags & ISA_NANOMIPS32)) {

Why is ASE_MICROMIPS ever set at the same time as ISA_NANOMIPS?
This change ought not be necessary, AFAIU.


r~

^ permalink raw reply

* Re: [RFC PATCH ghak90 (was ghak32) V3 02/10] audit: log container info of syscalls
From: Steve Grubb @ 2018-07-23 16:48 UTC (permalink / raw)
  To: Richard Guy Briggs
  Cc: Paul Moore, cgroups, containers, linux-api, linux-audit,
	linux-fsdevel, linux-kernel, netdev, ebiederm, luto, carlos,
	dhowells, viro, simo, Eric Paris, serge
In-Reply-To: <20180723151148.hyu4jqy2etp5afpt@madcap2.tricolour.ca>

On Monday, July 23, 2018 11:11:48 AM EDT Richard Guy Briggs wrote:
> On 2018-07-23 09:19, Steve Grubb wrote:
> > On Sunday, July 22, 2018 4:55:10 PM EDT Richard Guy Briggs wrote:
> > > On 2018-07-22 09:32, Steve Grubb wrote:
> > > > On Saturday, July 21, 2018 4:29:30 PM EDT Richard Guy Briggs wrote:
> > > > > > > + * audit_log_contid - report container info
> > > > > > > + * @tsk: task to be recorded
> > > > > > > + * @context: task or local context for record
> > > > > > > + * @op: contid string description
> > > > > > > + */
> > > > > > > +int audit_log_contid(struct task_struct *tsk,
> > > > > > > +                            struct audit_context *context,
> > > > > > > char
> > > > > > > *op)
> > > > > > > +{
> > > > > > > +       struct audit_buffer *ab;
> > > > > > > +
> > > > > > > +       if (!audit_contid_set(tsk))
> > > > > > > +               return 0;
> > > > > > > +       /* Generate AUDIT_CONTAINER record with container ID */
> > > > > > > +       ab = audit_log_start(context, GFP_KERNEL,
> > > > > > > AUDIT_CONTAINER);
> > > > > > > +       if (!ab)
> > > > > > > +               return -ENOMEM;
> > > > > > > +       audit_log_format(ab, "op=%s contid=%llu",
> > > > > > > +                        op, audit_get_contid(tsk));
> > > > > > 
> > > > > > Can you explain your reason for including an "op" field in this
> > > > > > record
> > > > > > type?  I've been looking at the rest of the patches in this
> > > > > > patchset
> > > > > > and it seems to be used more as an indicator of the record's
> > > > > > generating context rather than any sort of audit container ID
> > > > > > operation.
> > > > > 
> > > > > "action" might work, but that's netfilter and numeric... "kind"?
> > > > > Nothing else really seems to fit from a field name, type or lack of
> > > > > searchability perspective.
> > > > > 
> > > > > Steve, do you have an opinion?
> > > > 
> > > > We only have 1 sample event where we have op=task. What are the other
> > > > possible values?
> > > 
> > > For the AUDIT_CONTAINER record we have op= "task", "target" (from the
> > > ptrace and signals patch), "tty".
> > > 
> > > For the AUDIT_CONTAINER_ID record we have "op=set".
> > 
> > Since the purpose of this record is to log the container id, I think that
> > is all that is needed. We can get the context from the other records in
> > the event. I'd suggest dropping the "op" field.
> 
> Ok, the information above it for two different audit container
> identifier records.  Which one should drop the "op=" field?  Both?  Or
> just the AUDIT_CONTAINER record?  The AUDIT_CONTAINER_ID record (which
> might be renamed) could use it to distinguish a "set" record from a
> dropped audit container identifier that is no longer registered by any
> task or namespace.

Neither of them need it. All they need to do is state the container that is 
being acted upon.

-Steve




^ permalink raw reply

* [meta-oe][PATCH 2/2] meta-oe: update websocketpp to 0.8.1, drop all patches
From: Gianfranco Costamagna @ 2018-07-23 16:48 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Gianfranco Costamagna
In-Reply-To: <20180723164826.29256-1-costamagnagianfranco@yahoo.it>

---
 .../0001-Fix-issue-599.patch                           |  0
 .../4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch     |  0
 .../9ddb300d874a30db35e3ad58f188944bef0bf31b.patch     |  0
 .../disable-tests.patch                                |  0
 .../{websocketpp_0.7.0.bb => websocketpp_0.8.1.bb}     | 10 ++--------
 5 files changed, 2 insertions(+), 8 deletions(-)
 rename meta-oe/recipes-support/websocketpp/{websocketpp-0.7.0 => websocketpp-0.8.1}/0001-Fix-issue-599.patch (100%)
 rename meta-oe/recipes-support/websocketpp/{websocketpp-0.7.0 => websocketpp-0.8.1}/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch (100%)
 rename meta-oe/recipes-support/websocketpp/{websocketpp-0.7.0 => websocketpp-0.8.1}/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch (100%)
 rename meta-oe/recipes-support/websocketpp/{websocketpp-0.7.0 => websocketpp-0.8.1}/disable-tests.patch (100%)
 rename meta-oe/recipes-support/websocketpp/{websocketpp_0.7.0.bb => websocketpp_0.8.1.bb} (57%)

diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch
similarity index 100%
rename from meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
rename to meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/0001-Fix-issue-599.patch
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
similarity index 100%
rename from meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
rename to meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
similarity index 100%
rename from meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
rename to meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch
similarity index 100%
rename from meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
rename to meta-oe/recipes-support/websocketpp/websocketpp-0.8.1/disable-tests.patch
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb b/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
similarity index 57%
rename from meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
rename to meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
index 65fc974b6..75a5f886a 100644
--- a/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
+++ b/meta-oe/recipes-support/websocketpp/websocketpp_0.8.1.bb
@@ -7,14 +7,8 @@ DEPENDS = "openssl boost zlib"
 
 SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
 
-# tag 0.7.0
-SRCREV= "378437aecdcb1dfe62096ffd5d944bf1f640ccc3"
-
-SRC_URI += "file://0001-Fix-issue-599.patch \
-            file://9ddb300d874a30db35e3ad58f188944bef0bf31b.patch \
-            file://4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch \
-            file://disable-tests.patch \
- "
+# tag 0.8.1
+SRCREV= "c6d7e295bf5a0ab9b5f896720cc1a0e0fdc397a7"
 
 S = "${WORKDIR}/git"
 
-- 
2.17.1



^ permalink raw reply related

* [meta-oe][PATCH 1/2] meta-networking: drop duplicated websocketpp recipe
From: Gianfranco Costamagna @ 2018-07-23 16:48 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Gianfranco Costamagna

---
 .../0001-Fix-issue-599.patch                  |  31 -
 ...5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch | 155 -----
 ...300d874a30db35e3ad58f188944bef0bf31b.patch | 600 ------------------
 .../websocketpp-0.7.0/disable-tests.patch     |  51 --
 .../websocketpp/websocketpp_0.7.0.bb          |  21 -
 5 files changed, 858 deletions(-)
 delete mode 100644 meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
 delete mode 100644 meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
 delete mode 100644 meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
 delete mode 100644 meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
 delete mode 100644 meta-networking/recipes-support/websocketpp/websocketpp_0.7.0.bb

diff --git a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch b/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
deleted file mode 100644
index 2a9ea74cd..000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 1dd07113f2a7489444a8990a95be42e035f8e9df Mon Sep 17 00:00:00 2001
-From: Kurt Roeckx <kroeckx@debian.org>
-Date: Tue, 1 Nov 2016 12:57:35 +0100
-Subject: [PATCH] Fix issue #599
-Forwarded: https://github.com/zaphoyd/websocketpp/pull/600
-
----
- websocketpp/transport/asio/security/tls.hpp | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
-index 7b32db8..a8aafec 100644
---- a/websocketpp/transport/asio/security/tls.hpp
-+++ b/websocketpp/transport/asio/security/tls.hpp
-@@ -355,13 +355,9 @@ protected:
-     template <typename ErrorCodeType>
-     lib::error_code translate_ec(ErrorCodeType ec) {
-         if (ec.category() == lib::asio::error::get_ssl_category()) {
--            if (ERR_GET_REASON(ec.value()) == SSL_R_SHORT_READ) {
--                return make_error_code(transport::error::tls_short_read);
--            } else {
-                 // We know it is a TLS related error, but otherwise don't know
-                 // more. Pass through as TLS generic.
-                 return make_error_code(transport::error::tls_error);
--            }
-         } else {
-             // We don't know any more information about this error so pass
-             // through
--- 
-2.7.4
-
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
deleted file mode 100644
index 530c960ce..000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4 Mon Sep 17 00:00:00 2001
-From: Peter Thorson <git@zaphoyd.com>
-Date: Sun, 11 Jun 2017 16:13:25 -0500
-Subject: [PATCH] minor adjustments to recent extension negotiation related
- fixes, refactor a bit more extension negotiation code to be simpler
-
----
- websocketpp/impl/connection_impl.hpp |  6 +--
- websocketpp/processors/hybi13.hpp    | 92 ++++++++++++++++++------------------
- 2 files changed, 49 insertions(+), 49 deletions(-)
-
-Index: websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
-===================================================================
---- websocketpp-0.7.0.orig/websocketpp/impl/connection_impl.hpp
-+++ websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
-@@ -1222,17 +1222,17 @@
-     std::pair<lib::error_code,std::string> neg_results;
-     neg_results = m_processor->negotiate_extensions(m_request);
- 
--    if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
-+    if (neg_results.first == processor::error::make_error_code(processor::error::extension_parse_error)) {
-         // There was a fatal error in extension parsing that should result in
-         // a failed connection attempt.
--        m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
-+        m_elog.write(log::elevel::info, "Bad request: " + neg_results.first.message());
-         m_response.set_status(http::status_code::bad_request);
-         return neg_results.first;
-     } else if (neg_results.first) {
-         // There was a fatal error in extension processing that is probably our
-         // fault. Consider extension negotiation to have failed and continue as
-         // if extensions were not supported
--        m_alog.write(log::alevel::info, 
-+        m_elog.write(log::elevel::info, 
-             "Extension negotiation failed: " + neg_results.first.message());
-     } else {
-         // extension negotiation succeeded, set response header accordingly
-Index: websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
-===================================================================
---- websocketpp-0.7.0.orig/websocketpp/processors/hybi13.hpp
-+++ websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
-@@ -97,11 +97,6 @@
-     /**
-      * This exists mostly because the code for requests and responses is
-      * identical and I can't have virtual template methods.
--     *
--     * NOTE: this method makes assumptions that the permessage-deflate
--     * extension is the only one supported. If additional extensions are
--     * ever supported it should be reviewed carefully. Most cases where
--     * that assumption is made are explicitly noted.
-      */
-     template <typename header_type>
-     err_str_pair negotiate_extensions_helper(header_type const & header) {
-@@ -130,55 +125,60 @@
- 
-         http::parameter_list::const_iterator it;
- 
-+        // look through the list of extension requests to find the first
-+        // one that we can accept.
-         if (m_permessage_deflate.is_implemented()) {
-             err_str_pair neg_ret;
-             for (it = p.begin(); it != p.end(); ++it) {
--                // look through each extension, if the key is permessage-deflate
--                if (it->first == "permessage-deflate") {
--                    // if we have already successfully negotiated this extension
--                    // then skip any other requests to negotiate the same one
--                    // with different parameters 
--                    if (m_permessage_deflate.is_enabled()) {
--                        continue;
--                    }
--                    
--                    
--                    neg_ret = m_permessage_deflate.negotiate(it->second);
--
--                    if (neg_ret.first) {
--                        // Figure out if this is an error that should halt all
--                        // extension negotiations or simply cause negotiation of
--                        // this specific extension to fail.
--                        //std::cout << "permessage-compress negotiation failed: "
--                        //          << neg_ret.first.message() << std::endl;
--                    } else {
--                        // Note: this list will need commas if WebSocket++ ever
--                        // supports more than one extension
--                        
--                        // Actually try to initialize the extension before we
--                        // deem negotiation complete
--                        ret.first = m_permessage_deflate.init(base::m_server);
--                        if (!ret.first) {
--
--                            // TODO: support multiple extensions.
--                            // right now, because there is only one extension 
--                            // supported, it failing to negotiate means we are
--                            // done with all negotiating. In the future if more
--                            // extensions are supported a better solution will
--                            // be needed here.
--                            break;
--                        } else {
--                            ret.second += neg_ret.second;
--
--                            // continue looking for more extensions
--                            continue;
--                        }
--                        
--                    }
-+                // not a permessage-deflate extension request, ignore
-+                if (it->first != "permessage-deflate") {
-+                    continue;
-+                }
-+
-+                // if we have already successfully negotiated this extension
-+                // then skip any other requests to negotiate the same one
-+                // with different parameters 
-+                if (m_permessage_deflate.is_enabled()) {
-+                    continue;
-+                }
-+                
-+                // attempt to negotiate this offer
-+                neg_ret = m_permessage_deflate.negotiate(it->second);
-+
-+                if (neg_ret.first) {
-+                    // negotiation offer failed. Do nothing. We will continue
-+                    // searching for a permessage-deflate config that succeeds
-+                    continue;
-+                }
-+
-+                // Negotiation tentatively succeeded
-+
-+                // Actually try to initialize the extension before we
-+                // deem negotiation complete
-+                lib::error_code ec = m_permessage_deflate.init(base::m_server);
-+
-+                if (ec) {
-+                    // Negotiation succeeded but initialization failed this is 
-+                    // an error that should stop negotiation of permessage 
-+                    // deflate. Return the reason for the init failure
-+
-+                    ret.first = ec;
-+                    break;
-+                } else {
-+                    // Successfully initialized, push the negotiated response into
-+                    // the reply and stop looking for additional permessage-deflate
-+                    // extensions
-+                    ret.second += neg_ret.second;
-+                    break;
-                 }
-             }
-         }
- 
-+        // support for future extensions would go here. Should check the value of 
-+        // ret.first before continuing. Might need to consider whether failure of
-+        // negotiation of an earlier extension should stop negotiation of subsequent
-+        // ones
-+
-         return ret;
-     }
- 
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
deleted file mode 100644
index 94bfeb2fd..000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
+++ /dev/null
@@ -1,600 +0,0 @@
-## Description: add some description
-## Origin/Author: add some origin or author
-## Bug: bug URL
-From 9ddb300d874a30db35e3ad58f188944bef0bf31b Mon Sep 17 00:00:00 2001
-From: Peter Thorson <git@zaphoyd.com>
-Date: Sun, 11 Jun 2017 15:24:43 -0500
-Subject: [PATCH] Update permessage-deflate support to reflect that zlib
- doesn't support a 256 bit window. Improve extension negotiation error
- checking and documentation. fixes #596 fixes #653
-
----
- changelog.md                                       |   8 ++
- test/extension/permessage_deflate.cpp              | 153 +++++++++++++++++----
- .../extensions/permessage_deflate/enabled.hpp      |  94 ++++++++++---
- websocketpp/impl/connection_impl.hpp               |  10 +-
- websocketpp/processors/hybi13.hpp                  |  28 +++-
- 5 files changed, 247 insertions(+), 46 deletions(-)
-
-diff --git a/changelog.md b/changelog.md
-index bba753cb..de98edd2 100644
-#--- a/changelog.md
-#+++ b/changelog.md
-#@@ -17,6 +17,14 @@ HEAD
-# - Compatibility: Update `telemetry_client` to use a slightly more cross platform
-#   method of sleeping. Should work on windows now. Thank you Meir Yanovich for
-#   reporting.
-#+- Compatibility: Updated permessage-deflate support to reflect that the zlib
-#+  library does not actually support a sliding window size of 256 bits. 
-#+  WebSocket++ will no longer negotiate 256 bit deflate windows. If the user
-#+  of the library tries to request a 256 bit window a 512 bit window will be
-#+  specified instead (This was the previous behavior). #596 #653 Thank you 
-#+  Vinnie Falco and Gianfranco Costamagna for reporting.
-#+- Compatibility: Better error handling and logging in cases where extension
-#+  requests parse correctly but negotiation fails. 
-# - Bug: Store loggers in shared pointers to avoid crashes related to connections
-#   trying to write logs entries after their respective endpoint has been
-#   deallocated. Thank you Thalhammer for reporting and Jupp Müller for the 
-diff --git a/test/extension/permessage_deflate.cpp b/test/extension/permessage_deflate.cpp
-index 4cd3e7b6..805afcc3 100644
---- a/test/extension/permessage_deflate.cpp
-+++ b/test/extension/permessage_deflate.cpp
-@@ -186,15 +186,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_invalid ) {
- 
- BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_valid ) {
-     ext_vars v;
-+    
-+    // confirm that a request for a value of 8 is interpreted as 9
-     v.attr["server_max_window_bits"] = "8";
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- 
-+    v.attr["server_max_window_bits"] = "9";
-     v.esp = v.exts.negotiate(v.attr);
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
--    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- 
--    v.attr["server_max_window_bits"] = "15";
- 
-+    v.attr["server_max_window_bits"] = "15";
-     v.esp = v.exts.negotiate(v.attr);
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-@@ -213,7 +220,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_server_max_window_bits ) {
- 
- BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
-     ext_vars v;
--    v.attr["server_max_window_bits"] = "8";
-+    v.attr["server_max_window_bits"] = "9";
- 
-     v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::decline);
-     v.esp = v.exts.negotiate(v.attr);
-@@ -223,7 +230,7 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
-     BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
- }
- 
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept_8 ) {
-     ext_vars v;
-     v.attr["server_max_window_bits"] = "8";
- 
-@@ -232,10 +239,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
--    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
- 
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
-+    ext_vars v;
-+    v.attr["server_max_window_bits"] = "9";
-+
-+    v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::accept);
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest_8 ) {
-     ext_vars v;
-     v.attr["server_max_window_bits"] = "8";
- 
-@@ -244,10 +263,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
--    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
- 
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
-+    ext_vars v;
-+    v.attr["server_max_window_bits"] = "9";
-+
-+    v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::largest);
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest_8 ) {
-     ext_vars v;
-     v.attr["server_max_window_bits"] = "8";
- 
-@@ -256,7 +287,19 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
--    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
-+    ext_vars v;
-+    v.attr["server_max_window_bits"] = "9";
-+
-+    v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::smallest);
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
- 
- // Negotiate server_max_window_bits
-@@ -292,7 +335,13 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_valid ) {
-     v.esp = v.exts.negotiate(v.attr);
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
--    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+
-+    v.attr["client_max_window_bits"] = "9";
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- 
-     v.attr["client_max_window_bits"] = "15";
-     v.esp = v.exts.negotiate(v.attr);
-@@ -311,7 +360,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_client_max_window_bits ) {
-     BOOST_CHECK_EQUAL(v.ec,pmde::make_error_code(pmde::invalid_max_window_bits));
- }
- 
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline_8 ) {
-     ext_vars v;
-     v.attr["client_max_window_bits"] = "8";
- 
-@@ -323,7 +372,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
-     BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
- }
- 
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
-+    ext_vars v;
-+    v.attr["client_max_window_bits"] = "9";
-+
-+    v.ec = v.exts.set_client_max_window_bits(9,pmd_mode::decline);
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept_8 ) {
-     ext_vars v;
-     v.attr["client_max_window_bits"] = "8";
- 
-@@ -332,10 +393,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
--    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
- 
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
-+    ext_vars v;
-+    v.attr["client_max_window_bits"] = "9";
-+
-+    v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::accept);
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest_8 ) {
-     ext_vars v;
-     v.attr["client_max_window_bits"] = "8";
- 
-@@ -344,10 +417,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
--    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
- 
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
-+    ext_vars v;
-+    v.attr["client_max_window_bits"] = "9";
-+
-+    v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::largest);
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest_8 ) {
-     ext_vars v;
-     v.attr["client_max_window_bits"] = "8";
- 
-@@ -356,7 +441,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
-     BOOST_CHECK( v.exts.is_enabled() );
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-     BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
--    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
-+    ext_vars v;
-+    v.attr["client_max_window_bits"] = "9";
-+
-+    v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::smallest);
-+    v.esp = v.exts.negotiate(v.attr);
-+    BOOST_CHECK( v.exts.is_enabled() );
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+    BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
- 
- 
-@@ -507,7 +604,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
-     std::string compress_out;
-     std::string decompress_out;
- 
--    v.exts.init(true);
-+    v.ec = v.exts.init(true);
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- 
-     v.ec = v.exts.compress(compress_in,compress_out);
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -520,7 +618,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
- BOOST_AUTO_TEST_CASE( compress_data_multiple ) {
-     ext_vars v;
- 
--    v.exts.init(true);
-+    v.ec = v.exts.init(true);
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- 
-     for (int i = 0; i < 2; i++) {
-         std::string compress_in = "Hello";
-@@ -545,11 +644,12 @@ BOOST_AUTO_TEST_CASE( compress_data_large ) {
- 
-     websocketpp::http::attribute_list alist;
- 
--    alist["server_max_window_bits"] = "8";
--    v.exts.set_server_max_window_bits(8,websocketpp::extensions::permessage_deflate::mode::smallest);
-+    alist["server_max_window_bits"] = "9";
-+    v.exts.set_server_max_window_bits(9,websocketpp::extensions::permessage_deflate::mode::smallest);
- 
-     v.exts.negotiate(alist);
--    v.exts.init(true);
-+    v.ec = v.exts.init(true);
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- 
-     v.ec = v.exts.compress(compress_in,compress_out);
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -573,7 +673,8 @@ BOOST_AUTO_TEST_CASE( compress_data_no_context_takeover ) {
-     v.exts.enable_server_no_context_takeover();
- 
-     v.exts.negotiate(alist);
--    v.exts.init(true);
-+    v.ec = v.exts.init(true);
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- 
-     v.ec = v.exts.compress(compress_in,compress_out1);
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -609,7 +710,8 @@ BOOST_AUTO_TEST_CASE( compress_empty ) {
-     std::string compress_out;
-     std::string decompress_out;
- 
--    v.exts.init(true);
-+    v.ec = v.exts.init(true);
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- 
-     v.ec = v.exts.compress(compress_in,compress_out);
-     BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -640,7 +742,8 @@ BOOST_AUTO_TEST_CASE( decompress_data ) {
-     std::string out;
-     std::string reference = "Hello";
- 
--    v.exts.init(true);
-+    v.ec = v.exts.init(true);
-+    BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- 
-     v.ec = v.exts.decompress(in,11,out);
- 
-diff --git a/websocketpp/extensions/permessage_deflate/enabled.hpp b/websocketpp/extensions/permessage_deflate/enabled.hpp
-index 1581f14c..f20a1b1d 100644
---- a/websocketpp/extensions/permessage_deflate/enabled.hpp
-+++ b/websocketpp/extensions/permessage_deflate/enabled.hpp
-@@ -46,7 +46,7 @@
- namespace websocketpp {
- namespace extensions {
- 
--/// Implementation of the draft permessage-deflate WebSocket extension
-+/// Implementation of RFC 7692, the permessage-deflate WebSocket extension
- /**
-  * ### permessage-deflate interface
-  *
-@@ -174,18 +174,30 @@ namespace websocketpp {
- namespace extensions {
- namespace permessage_deflate {
- 
--/// Default value for server_max_window_bits as defined by draft 17
-+/// Default value for server_max_window_bits as defined by RFC 7692
- static uint8_t const default_server_max_window_bits = 15;
--/// Minimum value for server_max_window_bits as defined by draft 17
-+/// Minimum value for server_max_window_bits as defined by RFC 7692
-+/**
-+ * NOTE: A value of 8 is not actually supported by zlib, the deflate
-+ * library that WebSocket++ uses. To preserve backwards compatibility
-+ * with RFC 7692 and previous versions of the library a value of 8
-+ * is accepted by the library but will always be negotiated as 9.
-+ */
- static uint8_t const min_server_max_window_bits = 8;
--/// Maximum value for server_max_window_bits as defined by draft 17
-+/// Maximum value for server_max_window_bits as defined by RFC 7692
- static uint8_t const max_server_max_window_bits = 15;
- 
--/// Default value for client_max_window_bits as defined by draft 17
-+/// Default value for client_max_window_bits as defined by RFC 7692
- static uint8_t const default_client_max_window_bits = 15;
--/// Minimum value for client_max_window_bits as defined by draft 17
-+/// Minimum value for client_max_window_bits as defined by RFC 7692
-+/**
-+ * NOTE: A value of 8 is not actually supported by zlib, the deflate
-+ * library that WebSocket++ uses. To preserve backwards compatibility
-+ * with RFC 7692 and previous versions of the library a value of 8
-+ * is accepted by the library but will always be negotiated as 9.
-+ */
- static uint8_t const min_client_max_window_bits = 8;
--/// Maximum value for client_max_window_bits as defined by draft 17
-+/// Maximum value for client_max_window_bits as defined by RFC 7692
- static uint8_t const max_client_max_window_bits = 15;
- 
- namespace mode {
-@@ -372,7 +384,7 @@ class enabled {
-     /**
-      * The bits setting is the base 2 logarithm of the maximum window size that
-      * the server must use to compress outgoing messages. The permitted range
--     * is 8 to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB
-+     * is 9 to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB
-      * window. The default setting is 15.
-      *
-      * Mode Options:
-@@ -386,6 +398,14 @@ class enabled {
-      * adjusted by the server. A server may unilaterally set this value without
-      * client support.
-      *
-+     * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
-+     * Prior to version 0.8.0 a value of 8 was also allowed by this library.
-+     * zlib, the deflate compression library that WebSocket++ uses has always
-+     * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9 
-+     * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
-+     * continues to perform the 8->9 conversion for backwards compatibility
-+     * purposes but this should be considered deprecated functionality.
-+     *
-      * @param bits The size to request for the outgoing window size
-      * @param mode The mode to use for negotiating this parameter
-      * @return A status code
-@@ -394,6 +414,12 @@ class enabled {
-         if (bits < min_server_max_window_bits || bits > max_server_max_window_bits) {
-             return error::make_error_code(error::invalid_max_window_bits);
-         }
-+
-+        // See note in doc comment above about what is happening here
-+        if (bits == 8) {
-+            bits = 9;
-+        }
-+
-         m_server_max_window_bits = bits;
-         m_server_max_window_bits_mode = mode;
- 
-@@ -403,8 +429,8 @@ class enabled {
-     /// Limit client LZ77 sliding window size
-     /**
-      * The bits setting is the base 2 logarithm of the window size that the
--     * client must use to compress outgoing messages. The permitted range is 8
--     * to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB window.
-+     * client must use to compress outgoing messages. The permitted range is 9
-+     * to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB window.
-      * The default setting is 15.
-      *
-      * Mode Options:
-@@ -417,6 +443,14 @@ class enabled {
-      * outgoing window size unilaterally. A server may only limit the client's
-      * window size if the remote client supports that feature.
-      *
-+     * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
-+     * Prior to version 0.8.0 a value of 8 was also allowed by this library.
-+     * zlib, the deflate compression library that WebSocket++ uses has always
-+     * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9 
-+     * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
-+     * continues to perform the 8->9 conversion for backwards compatibility
-+     * purposes but this should be considered deprecated functionality.
-+     *
-      * @param bits The size to request for the outgoing window size
-      * @param mode The mode to use for negotiating this parameter
-      * @return A status code
-@@ -425,6 +459,12 @@ class enabled {
-         if (bits < min_client_max_window_bits || bits > max_client_max_window_bits) {
-             return error::make_error_code(error::invalid_max_window_bits);
-         }
-+
-+        // See note in doc comment above about what is happening here
-+        if (bits == 8) {
-+            bits = 9;
-+        }
-+
-         m_client_max_window_bits = bits;
-         m_client_max_window_bits_mode = mode;
- 
-@@ -642,11 +682,17 @@ class enabled {
-      * client requested that we use.
-      *
-      * options:
--     * - decline (refuse to use the attribute)
--     * - accept (use whatever the client says)
--     * - largest (use largest possible value)
-+     * - decline (ignore value, offer our default instead)
-+     * - accept (use the value requested by the client)
-+     * - largest (use largest value acceptable to both)
-      * - smallest (use smallest possible value)
-      *
-+     * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
-+     * be requested for negotiation by an older client/server, if the result of
-+     * the negotiation would be to send a value of 8, a value of 9 is offered
-+     * instead. This ensures that WebSocket++ will only ever negotiate connections
-+     * with compression settings explicitly supported by zlib.
-+     *
-      * @param [in] value The value of the attribute from the offer
-      * @param [out] ec A reference to the error code to return errors via
-      */
-@@ -678,6 +724,11 @@ class enabled {
-                 ec = make_error_code(error::invalid_mode);
-                 m_server_max_window_bits = default_server_max_window_bits;
-         }
-+
-+        // See note in doc comment
-+        if (m_server_max_window_bits == 8) {
-+            m_server_max_window_bits = 9;
-+        }
-     }
- 
-     /// Negotiate client_max_window_bits attribute
-@@ -687,11 +738,17 @@ class enabled {
-      * negotiation mode.
-      *
-      * options:
--     * - decline (refuse to use the attribute)
--     * - accept (use whatever the client says)
--     * - largest (use largest possible value)
-+     * - decline (ignore value, offer our default instead)
-+     * - accept (use the value requested by the client)
-+     * - largest (use largest value acceptable to both)
-      * - smallest (use smallest possible value)
-      *
-+     * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
-+     * be requested for negotiation by an older client/server, if the result of
-+     * the negotiation would be to send a value of 8, a value of 9 is offered
-+     * instead. This ensures that WebSocket++ will only ever negotiate connections
-+     * with compression settings explicitly supported by zlib.
-+     *
-      * @param [in] value The value of the attribute from the offer
-      * @param [out] ec A reference to the error code to return errors via
-      */
-@@ -727,6 +784,11 @@ class enabled {
-                 ec = make_error_code(error::invalid_mode);
-                 m_client_max_window_bits = default_client_max_window_bits;
-         }
-+
-+        // See note in doc comment
-+        if (m_client_max_window_bits == 8) {
-+            m_client_max_window_bits = 9;
-+        }
-     }
- 
-     bool m_enabled;
-diff --git a/websocketpp/impl/connection_impl.hpp b/websocketpp/impl/connection_impl.hpp
-index 105911db..ae55c338 100644
---- a/websocketpp/impl/connection_impl.hpp
-+++ b/websocketpp/impl/connection_impl.hpp
-@@ -1222,12 +1222,18 @@ lib::error_code connection<config>::process_handshake_request() {
-     std::pair<lib::error_code,std::string> neg_results;
-     neg_results = m_processor->negotiate_extensions(m_request);
- 
--    if (neg_results.first) {
-+    if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
-         // There was a fatal error in extension parsing that should result in
-         // a failed connection attempt.
--        m_alog.write(log::alevel::devel, "Bad request: " + neg_results.first.message());
-+        m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
-         m_response.set_status(http::status_code::bad_request);
-         return neg_results.first;
-+    } else if (neg_results.first) {
-+        // There was a fatal error in extension processing that is probably our
-+        // fault. Consider extension negotiation to have failed and continue as
-+        // if extensions were not supported
-+        m_alog.write(log::alevel::info, 
-+            "Extension negotiation failed: " + neg_results.first.message());
-     } else {
-         // extension negotiation succeeded, set response header accordingly
-         // we don't send an empty extensions header because it breaks many
-diff --git a/websocketpp/processors/hybi13.hpp b/websocketpp/processors/hybi13.hpp
-index 79486654..a95bc649 100644
---- a/websocketpp/processors/hybi13.hpp
-+++ b/websocketpp/processors/hybi13.hpp
-@@ -97,6 +97,11 @@ class hybi13 : public processor<config> {
-     /**
-      * This exists mostly because the code for requests and responses is
-      * identical and I can't have virtual template methods.
-+     *
-+     * NOTE: this method makes assumptions that the permessage-deflate
-+     * extension is the only one supported. If additional extensions are
-+     * ever supported it should be reviewed carefully. Most cases where
-+     * that assumption is made are explicitly noted.
-      */
-     template <typename header_type>
-     err_str_pair negotiate_extensions_helper(header_type const & header) {
-@@ -149,9 +154,26 @@ class hybi13 : public processor<config> {
-                     } else {
-                         // Note: this list will need commas if WebSocket++ ever
-                         // supports more than one extension
--                        ret.second += neg_ret.second;
--                        m_permessage_deflate.init(base::m_server);
--                        continue;
-+                        
-+                        // Actually try to initialize the extension before we
-+                        // deem negotiation complete
-+                        ret.first = m_permessage_deflate.init(base::m_server);
-+                        if (!ret.first) {
-+
-+                            // TODO: support multiple extensions.
-+                            // right now, because there is only one extension 
-+                            // supported, it failing to negotiate means we are
-+                            // done with all negotiating. In the future if more
-+                            // extensions are supported a better solution will
-+                            // be needed here.
-+                            break;
-+                        } else {
-+                            ret.second += neg_ret.second;
-+
-+                            // continue looking for more extensions
-+                            continue;
-+                        }
-+                        
-                     }
-                 }
-             }
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch b/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
deleted file mode 100644
index 342981d4d..000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Description: Disable failing test_transport_asio_timers.
-Because of "address already in use" error
-/«PKGBUILDDIR»/test/transport/asio/timers.cpp(129): error in "tls_handshake_timeout": check ec == make_error_code(tls_handshake_timeout) failed [websocketpp.transport.asio.socket:8 != websocketpp.transport.asio.socket:5]
-Author: Gianfranco Costamagna <locutusofborg@debian.org>
-
---- websocketpp-0.7.0.orig/test/transport/CMakeLists.txt
-+++ websocketpp-0.7.0/test/transport/CMakeLists.txt
-@@ -1,24 +1,24 @@
- if (OPENSSL_FOUND)
- 
--# Test transport integration
--file (GLOB SOURCE integration.cpp)
--
--init_target (test_transport)
--build_test (${TARGET_NAME} ${SOURCE})
--link_boost ()
--link_openssl()
--final_target ()
--set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
--
--# Test transport asio timers
--file (GLOB SOURCE asio/timers.cpp)
--
--init_target (test_transport_asio_timers)
--build_test (${TARGET_NAME} ${SOURCE})
--link_boost ()
--link_openssl()
--final_target ()
--set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
-+## Test transport integration
-+#file (GLOB SOURCE integration.cpp)
-+#
-+#init_target (test_transport)
-+#build_test (${TARGET_NAME} ${SOURCE})
-+#link_boost ()
-+#link_openssl()
-+#final_target ()
-+#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
-+#
-+## Test transport asio timers
-+#file (GLOB SOURCE asio/timers.cpp)
-+#
-+#init_target (test_transport_asio_timers)
-+#build_test (${TARGET_NAME} ${SOURCE})
-+#link_boost ()
-+#link_openssl()
-+#final_target ()
-+#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
- 
- # Test transport asio security
- file (GLOB SOURCE asio/security.cpp)
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp_0.7.0.bb b/meta-networking/recipes-support/websocketpp/websocketpp_0.7.0.bb
deleted file mode 100644
index 65fc974b6..000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp_0.7.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "C++/Boost Asio based websocket client/server library."
-SECTION = "libs/network"
-HOMEPAGE = "https://github.com/zaphoyd/websocketpp"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
-DEPENDS = "openssl boost zlib"
-
-SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
-
-# tag 0.7.0
-SRCREV= "378437aecdcb1dfe62096ffd5d944bf1f640ccc3"
-
-SRC_URI += "file://0001-Fix-issue-599.patch \
-            file://9ddb300d874a30db35e3ad58f188944bef0bf31b.patch \
-            file://4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch \
-            file://disable-tests.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-- 
2.17.1



^ permalink raw reply related

* Re: [PATCH xf86-video-amdgpu] Use strcpy for RandR output property names
From: Abramov, Slava @ 2018-07-23 16:48 UTC (permalink / raw)
  To: Michel Dänzer,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
In-Reply-To: <20180723164511.21547-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org>


[-- Attachment #1.1: Type: text/plain, Size: 3375 bytes --]

Reviewed-by: Slava Abramov <slava.abramov-5C7GfCeVMHo@public.gmane.org>

________________________________
From: amd-gfx <amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org> on behalf of Michel Dänzer <michel-otUistvHUpPR7s880joybQ@public.gmane.org>
Sent: Monday, July 23, 2018 12:45:11 PM
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: [PATCH xf86-video-amdgpu] Use strcpy for RandR output property names

From: Michel Dänzer <michel.daenzer-5C7GfCeVMHo@public.gmane.org>

Instead of strncpy with the string length. Avoids new warnings with GCC
8:

../../src/drmmode_display.c: In function ‘drmmode_output_create_resources’:
../../src/drmmode_display.c:2240:2: warning: ‘strncpy’ output truncated before terminating nul copying 8 bytes from a string of the same length [-Wstringop-truncation]
  strncpy(tearfree_prop->name, "TearFree", 8);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/drmmode_display.c:2244:2: warning: ‘strncpy’ output truncated before terminating nul copying 3 bytes from a string of the same length [-Wstringop-truncation]
  strncpy(tearfree_prop->enums[0].name, "off", 3);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/drmmode_display.c:2245:2: warning: ‘strncpy’ output truncated before terminating nul copying 2 bytes from a string of the same length [-Wstringop-truncation]
  strncpy(tearfree_prop->enums[1].name, "on", 2);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/drmmode_display.c:2247:2: warning: ‘strncpy’ output truncated before terminating nul copying 4 bytes from a string of the same length [-Wstringop-truncation]
  strncpy(tearfree_prop->enums[2].name, "auto", 4);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Michel Dänzer <michel.daenzer-5C7GfCeVMHo@public.gmane.org>
---
 src/drmmode_display.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index b3e754005..92f58c157 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -2211,14 +2211,14 @@ static void drmmode_output_create_resources(xf86OutputPtr output)
         /* Userspace-only property for TearFree */
         tearfree_prop = calloc(1, sizeof(*tearfree_prop));
         tearfree_prop->flags = DRM_MODE_PROP_ENUM;
-       strncpy(tearfree_prop->name, "TearFree", 8);
+       strcpy(tearfree_prop->name, "TearFree");
         tearfree_prop->count_enums = 3;
         tearfree_prop->enums = calloc(tearfree_prop->count_enums,
                                       sizeof(*tearfree_prop->enums));
-       strncpy(tearfree_prop->enums[0].name, "off", 3);
-       strncpy(tearfree_prop->enums[1].name, "on", 2);
+       strcpy(tearfree_prop->enums[0].name, "off");
+       strcpy(tearfree_prop->enums[1].name, "on");
         tearfree_prop->enums[1].value = 1;
-       strncpy(tearfree_prop->enums[2].name, "auto", 4);
+       strcpy(tearfree_prop->enums[2].name, "auto");
         tearfree_prop->enums[2].value = 2;
         drmmode_output->props[j].mode_prop = tearfree_prop;
         drmmode_output->props[j].value = info->tear_free;
--
2.18.0

_______________________________________________
amd-gfx mailing list
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

[-- Attachment #1.2: Type: text/html, Size: 5476 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related

* [meta-oe][PATCH] meta-oe: update cpprest with patches uploaded in Debian, add upstream proposed gcc-8 patch, add boost 1.63 build fix patch
From: Gianfranco Costamagna @ 2018-07-23 16:47 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Gianfranco Costamagna, Gianfranco Costamagna

Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
---
 .../0001-disable-more-Werror-warnings.patch   |  48 ------
 .../0002-Define-virtual-destructor.patch      |  28 ----
 ...build-problem-on-Clang.patch => 732.patch} |   5 +-
 .../cpprest/cpprest-2.10.2/747.patch          |  12 ++
 .../cpprest/cpprest-2.10.2/787.patch          |  32 ++++
 .../cpprest/cpprest-2.10.2/boost-fix.patch    |  14 ++
 .../cpprest-2.10.2/disable-float-tests.patch  |  25 +++
 .../disable-outside-tests.patch               | 142 ++++++++++++++++++
 .../disable-test-timeouts.patch               | 103 +++++++++++++
 .../cpprest-2.10.2/fix-cmake-install.patch    |  50 +++++-
 .../recipes-support/cpprest/cpprest_2.10.2.bb |  11 +-
 11 files changed, 382 insertions(+), 88 deletions(-)
 delete mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-disable-more-Werror-warnings.patch
 delete mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch
 rename meta-oe/recipes-support/cpprest/cpprest-2.10.2/{0001-Fix-a-build-problem-on-Clang.patch => 732.patch} (82%)
 create mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/747.patch
 create mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/787.patch
 create mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/boost-fix.patch
 create mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-float-tests.patch
 create mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-outside-tests.patch
 create mode 100644 meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-test-timeouts.patch

diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-disable-more-Werror-warnings.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-disable-more-Werror-warnings.patch
deleted file mode 100644
index febfd5bc9..000000000
--- a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-disable-more-Werror-warnings.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From ee92f84a96a507b0a7a3c54929ce190ee28b4ecd Mon Sep 17 00:00:00 2001
-From: Alexander Moriarty <amoriarty@fetchrobotics.com>
-Date: Wed, 6 Jun 2018 10:38:43 -0700
-Subject: [PATCH] disable more -Werror warnings
-
-gcc-8: -Wno-format-truncation
-
-clang-6: -Wdelete-non-virtual-dtor
-clang-6: -Wunused-lambda-capture
-
-removed duplicated: -Wno-reorder
-
-This fixes #778
-
-Upstream-Status: Pending [https://github.com/Microsoft/cpprestsdk/pull/779]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Release/CMakeLists.txt | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/Release/CMakeLists.txt b/Release/CMakeLists.txt
-index 1267aff1..fb291ccd 100644
---- a/Release/CMakeLists.txt
-+++ b/Release/CMakeLists.txt
-@@ -166,12 +166,12 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR IOS)
-     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes -Wno-pointer-arith")
-   elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
-     set(WARNINGS -Wall -Wextra -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls)
--    set(LINUX_SUPPRESSIONS -Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-reorder -Wno-unused-local-typedefs)
-+    set(LINUX_SUPPRESSIONS -Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-unused-local-typedefs -Wno-delete-non-virtual-dtor -Wno-unused-lambda-capture)
-     set(WARNINGS ${WARNINGS} ${LINUX_SUPPRESSIONS})
-     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-return-type-c-linkage -Wno-unneeded-internal-declaration")
-   else()
-     set(WARNINGS -Wall -Wextra -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls)
--    set(OSX_SUPPRESSIONS -Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-reorder -Wno-unused-local-typedefs)
-+    set(OSX_SUPPRESSIONS -Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-unused-local-typedefs -Wno-delete-non-virtual-dtor -Wno-unused-lambda-capture)
-     set(WARNINGS ${WARNINGS} ${OSX_SUPPRESSIONS})
- 
-     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -Wno-return-type-c-linkage -Wno-unneeded-internal-declaration")
-@@ -184,7 +184,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR IOS)
- elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
-   message("-- Setting gcc options")
- 
--  set(WARNINGS -Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code)
-+  set(WARNINGS -Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code -Wno-format-truncation)
-   set(LD_FLAGS "${LD_FLAGS} -Wl,-z,defs")
- 
-   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch
deleted file mode 100644
index 34cbe6697..000000000
--- a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 816d183eb0fe9ab4607cb049b4b792f8df84d5fe Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 22 May 2018 22:17:43 -0700
-Subject: [PATCH] Define virtual destructor
-
-Fixes
-error: destructor called on non-final 'pplx::details::linux_scheduler' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
-    __data_.second().~_Tp();
-
-Upstream-Status: Pending [https://github.com/Microsoft/cpprestsdk/issues/747]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Release/include/pplx/pplxlinux.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Release/include/pplx/pplxlinux.h b/Release/include/pplx/pplxlinux.h
-index 6aa1ba35..f3f8d70d 100644
---- a/Release/include/pplx/pplxlinux.h
-+++ b/Release/include/pplx/pplxlinux.h
-@@ -240,6 +240,7 @@ namespace platform
-     {
-     public:
-         _PPLXIMP virtual void schedule( TaskProc_t proc, _In_ void* param);
-+    virtual ~linux_scheduler() {}
-     };
- 
- } // namespace details
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/732.patch
similarity index 82%
rename from meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch
rename to meta-oe/recipes-support/cpprest/cpprest-2.10.2/732.patch
index dc6b9dfca..9fcffbfed 100644
--- a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/732.patch
@@ -1,4 +1,4 @@
-From 0c07931f77aa9df2da065b633ae66faad5a570ec Mon Sep 17 00:00:00 2001
+From 3d8caad3f459d8b2136c5bc9be7fdec53e5d777d Mon Sep 17 00:00:00 2001
 From: Wu Yongwei <wuyongwei@gmail.com>
 Date: Tue, 10 Apr 2018 11:29:12 +0800
 Subject: [PATCH] Fix a build problem on Clang.
@@ -6,9 +6,6 @@ Subject: [PATCH] Fix a build problem on Clang.
 AND_CAPTURE_MEMBER_FUNCTION_POINTERS workaround had a check for GCC,
 but did not exclude Clang.  Clang has a fake GCC version of 4.2, thus
 caused problems.
-
-Upstream-Status: Backport [https://github.com/Microsoft/cpprestsdk/pull/732]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  Release/src/http/client/http_client_asio.cpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/747.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/747.patch
new file mode 100644
index 000000000..94bb00598
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/747.patch
@@ -0,0 +1,12 @@
+Description: fix for upstream issue 747, clang 6 build error
+From: rozhuk-im
+--- a/Release/include/pplx/pplxlinux.h	2018-04-29 16:22:39.927675000 +0300
++++ b/Release/include/pplx/pplxlinux.h	2018-04-29 16:22:57.809537000 +0300
+@@ -240,6 +240,7 @@
+     {
+     public:
+         _PPLXIMP virtual void schedule( TaskProc_t proc, _In_ void* param);
++    virtual ~linux_scheduler() {}
+     };
+ 
+ } // namespace details
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/787.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/787.patch
new file mode 100644
index 000000000..359a3ba52
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/787.patch
@@ -0,0 +1,32 @@
+From 212536f9d66400bef4400c55efd05dd01303c035 Mon Sep 17 00:00:00 2001
+From: Andreas Stieger <astieger@suse.com>
+Date: Sun, 17 Jun 2018 13:00:05 +0200
+Subject: [PATCH] Fix gcc8 error/warning -Werror=format-truncation=
+
+utilities::datetime::to_string(): datetime_str and buf were oversized
+for fitting into output without possible trunctation
+---
+ Release/src/utilities/asyncrt_utils.cpp | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/Release/src/utilities/asyncrt_utils.cpp b/Release/src/utilities/asyncrt_utils.cpp
+index 0e62bdee..be38907c 100644
+--- a/Release/src/utilities/asyncrt_utils.cpp
++++ b/Release/src/utilities/asyncrt_utils.cpp
+@@ -691,12 +691,13 @@ utility::string_t datetime::to_string(date_format format) const
+     {
+         // Append fractional second, which is a 7-digit value with no trailing zeros
+         // This way, '1200' becomes '00012'
+-        char buf[9] = { 0 };
++        const int max_frac_length = 8;
++        char buf[max_frac_length+1] = { 0 };
+         snprintf(buf, sizeof(buf), ".%07ld", (long int)frac_sec);
+         // trim trailing zeros
+-        for (int i = 7; buf[i] == '0'; i--) buf[i] = '\0';
++        for (int i = max_frac_length-1; buf[i] == '0'; i--) buf[i] = '\0';
+         // format the datetime into a separate buffer
+-        char datetime_str[max_dt_length+1] = {0};
++        char datetime_str[max_dt_length-max_frac_length-1+1] = {0};
+         strftime(datetime_str, sizeof(datetime_str), "%Y-%m-%dT%H:%M:%S", &datetime);
+         // now print this buffer into the output buffer
+         snprintf(output, sizeof(output), "%s%sZ", datetime_str, buf);
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/boost-fix.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/boost-fix.patch
new file mode 100644
index 000000000..5318a6a10
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/boost-fix.patch
@@ -0,0 +1,14 @@
+Origin: https://github.com/Microsoft/cpprestsdk/issues/813
+Last-Update: 2018-07-23
+
+--- cpprest-2.10.2.orig/Release/libs/websocketpp/websocketpp/transport/asio/security/tls.hpp
++++ cpprest-2.10.2/Release/libs/websocketpp/websocketpp/transport/asio/security/tls.hpp
+@@ -312,7 +312,7 @@ protected:
+                 return make_error_code(transport::error::tls_short_read);
+ #else
+             if (ERR_GET_REASON(ec.value()) == boost::asio::ssl::error::stream_truncated) {
+-                return make_error_code(boost::asio::ssl::error::stream_truncated);
++                return make_error_code(static_cast<std::errc>(boost::asio::ssl::error::stream_truncated));
+ #endif
+             } else {
+                 // We know it is a TLS related error, but otherwise don't know
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-float-tests.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-float-tests.patch
new file mode 100644
index 000000000..75f74ec65
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-float-tests.patch
@@ -0,0 +1,25 @@
+Description: new toolchain might have increased the float precision
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2017-10-28
+Forwarded: https://github.com/Microsoft/cpprestsdk/issues/576
+
+--- casablanca-2.10.0.orig/Release/tests/functional/streams/istream_tests.cpp
++++ casablanca-2.10.0/Release/tests/functional/streams/istream_tests.cpp
+@@ -1302,7 +1302,7 @@ void compare_float(float expected, float
+ {
+     compare_floating(expected, actual, FLT_EPSILON);
+ }
+-
++/*
+ TEST(extract_floating_point)
+ {
+     std::string test_string;
+@@ -1349,7 +1349,7 @@ TEST(extract_floating_point)
+             VERIFY_ARE_EQUAL(1 / expected, 1 / actual);
+     } while (!std_istream.eof());
+ }
+-
++*/
+ TEST(extract_floating_point_with_exceptions)
+ {
+     std::vector<std::pair<std::string, std::string>> tests;
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-outside-tests.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-outside-tests.patch
new file mode 100644
index 000000000..b9b3591c3
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-outside-tests.patch
@@ -0,0 +1,142 @@
+Description: Debian forbids calls to external websites.
+
+Author: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Origin: Debian
+Forwarded: not-needed
+Reviewed-By: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Last-Update: 2015-11-25
+
+Index: casablanca/Release/tests/functional/http/client/CMakeLists.txt
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/CMakeLists.txt
++++ casablanca/Release/tests/functional/http/client/CMakeLists.txt
+@@ -9,7 +9,6 @@
+   multiple_requests.cpp
+   oauth1_tests.cpp
+   oauth2_tests.cpp
+-  outside_tests.cpp
+   pipeline_stage_tests.cpp
+   progress_handler_tests.cpp
+   proxy_tests.cpp
+Index: casablanca/Release/tests/functional/http/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/http/client/authentication_tests.cpp
+@@ -663,15 +663,19 @@
+     VERIFY_ARE_EQUAL(return_code, response.status_code());
+ }
+ 
++/*
+ TEST(auth_no_data)
+ {
+     auth_test_impl(false);
+ }
++*/
+ 
++/*
+ TEST(unsuccessful_auth_with_basic_cred)
+ {
+     auth_test_impl(true);
+ }
++*/
+ 
+ TEST_FIXTURE(uri_address, set_user_options_asio_http)
+ {
+@@ -692,7 +696,7 @@
+     auto response = client.request(methods::GET).get();
+     VERIFY_ARE_EQUAL(200, response.status_code());
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, set_user_options_asio_https)
+ {
+     handle_timeout([]
+@@ -714,7 +718,7 @@
+         VERIFY_IS_FALSE(v.empty());
+     });
+ }
+-
++*/
+ #endif
+ 
+ } // SUITE(authentication_tests)
+Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+@@ -86,7 +86,7 @@
+     }
+     return false;
+ }
+-
++/*
+ TEST(ssl_test)
+ {
+     websocket_client client;
+@@ -122,7 +122,7 @@
+         throw;
+     }
+ }
+-
++*/
+ // These tests are specific to our websocketpp based implementation.
+ #if !defined(__cplusplus_winrt)
+ 
+@@ -153,14 +153,15 @@
+         throw;
+     }
+ }
+-
++/*
+ // Test specifically for server SignalR team hit interesting cases with.
+ TEST(sni_with_older_server_test)
+ {
+     websocket_client client;
+     sni_test_impl(client);
+ }
+-
++*/
++/*
+ // WinRT doesn't expose option for disabling.
+ // No stable server is available to reliably test this.
+ // The configuration below relies on a timeout in the success case.
+@@ -188,7 +189,8 @@
+         throw;
+     }
+ }
+-
++*/
++/*
+ // Winrt doesn't allow explicitly setting server host for SNI.
+ TEST(sni_explicit_hostname)
+ {
+@@ -199,7 +201,7 @@
+     websocket_client client(config);
+     sni_test_impl(client);
+ }
+-
++*/
+ void handshake_error_test_impl(const ::utility::string_t &host)
+ {
+     websocket_client client;
+Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp
++++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+@@ -415,6 +415,7 @@
+ }
+ #endif
+ 
++/*
+ // Try to connect to a server on a closed port and cancel the operation.
+ TEST_FIXTURE(uri_address, cancel_bad_port)
+ {
+@@ -446,7 +447,7 @@
+ 
+     VERIFY_THROWS_HTTP_ERROR_CODE(t.get(), std::errc::operation_canceled);
+ }
+-
++*/
+ } // SUITE(connections_and_errors)
+ 
+ }}}}
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-test-timeouts.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-test-timeouts.patch
new file mode 100644
index 000000000..93c3e8a26
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/disable-test-timeouts.patch
@@ -0,0 +1,103 @@
+Description: Some tests takes too long on slow architectures and timeouts
+ We can safely disable them.
+ e.g.
+ Release/tests/functional/http/client/connections_and_errors.cpp:142: error: Failure in request_timeout_microsecond: Test case timed out and is hung. Aborting all remaining test cases. Expected under 180000ms. FAILED
+
+Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp
++++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp
+@@ -127,7 +127,7 @@
+     // Try sending another request.
+     VERIFY_THROWS(client.request(methods::GET).wait(), web::http::http_exception);
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, request_timeout)
+ {
+     test_http_server::scoped_server scoped(m_uri);
+@@ -146,7 +146,8 @@
+ #endif
+     t.get();
+ }
+-
++*/
++/*
+ TEST_FIXTURE(uri_address, request_timeout_microsecond)
+ {
+     pplx::task<test_request*> t;
+@@ -168,7 +169,7 @@
+     try { t.get(); }
+     catch (...) {}
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, invalid_method)
+ {
+     web::http::uri uri(U("http://www.bing.com/"));
+Index: casablanca/Release/tests/functional/http/listener/requests_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/http/listener/requests_tests.cpp
++++ casablanca/Release/tests/functional/http/listener/requests_tests.cpp
+@@ -173,7 +173,7 @@
+ 
+     listener.close().wait();
+ }
+-
++/*
+ TEST_FIXTURE(uri_address, response_order)
+ {
+     http_listener listener(m_uri);
+@@ -217,7 +217,7 @@
+ 
+     listener.close().wait();
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, uri_encoding, "Ignore", "Codeplex 201")
+ {
+     http_listener listener(m_uri);
+Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
++++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp
+@@ -221,7 +221,7 @@
+         VERIFY_ARE_EQUAL("TLS handshake failed", e.error_code().message());
+     }
+ }
+-
++/*
+ TEST(self_signed_cert)
+ {
+     handshake_error_test_impl(U("wss://self-signed.badssl.com/"));
+@@ -236,7 +236,7 @@
+ {
+     handshake_error_test_impl(U("wss://expired.badssl.com/"));
+ }
+-
++*/
+ #endif
+ 
+ } // SUITE(authentication_tests)
+Index: casablanca/Release/tests/functional/websockets/client/client_construction.cpp
+===================================================================
+--- casablanca.orig/Release/tests/functional/websockets/client/client_construction.cpp
++++ casablanca/Release/tests/functional/websockets/client/client_construction.cpp
+@@ -81,7 +81,7 @@
+     VERIFY_ARE_EQUAL(config2.credentials().username(), cred.username());
+ }
+ 
+-
++/*
+ // Verify that we can get the baseuri from websocket_client connect.
+ TEST_FIXTURE(uri_address, uri_test)
+ {
+@@ -101,7 +101,7 @@
+     VERIFY_ARE_EQUAL(client2.uri(), m_uri);
+     client2.close().wait();
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, move_operations)
+ {
+     std::string body("hello");
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
index 0feafef5b..ab9227680 100644
--- a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
+++ b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
@@ -4,14 +4,56 @@ Upstream-Status: https://github.com/Microsoft/cpprestsdk/pull/737
 Forwarded: https://github.com/Microsoft/cpprestsdk/pull/737
 Last-Update: 2018-04-19
 
---- cpprest-2.10.2.orig/CMakeLists.txt
-+++ cpprest-2.10.2/CMakeLists.txt
-@@ -18,7 +18,7 @@ enable_testing()
+Index: cpprest/Release/CMakeLists.txt
+===================================================================
+--- cpprest.orig/Release/CMakeLists.txt
++++ cpprest/Release/CMakeLists.txt
+@@ -18,7 +18,6 @@
  set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
  set(CPPREST_EXCLUDE_WEBSOCKETS OFF CACHE BOOL "Exclude websockets functionality.")
  set(CPPREST_EXCLUDE_COMPRESSION OFF CACHE BOOL "Exclude compression functionality.")
 -set(CPPREST_EXPORT_DIR lib/cpprestsdk CACHE STRING "Directory to install CMake config files.")
-+set(CPPREST_EXPORT_DIR lib/cmake/cpprestsdk CACHE STRING "Directory to install CMake config files.")
  set(CPPREST_INSTALL_HEADERS ON CACHE BOOL "Install header files.")
  set(CPPREST_INSTALL ON CACHE BOOL "Add install commands.")
  
+@@ -63,6 +62,9 @@
+ include(cmake/cpprest_find_openssl.cmake)
+ include(cmake/cpprest_find_websocketpp.cmake)
+ include(CheckIncludeFiles)
++if(UNIX)
++include(GNUInstallDirs)
++endif(UNIX)
+ 
+ find_package(Threads REQUIRED)
+ if(THREADS_HAVE_PTHREAD_ARG)
+Index: cpprest/Release/src/CMakeLists.txt
+===================================================================
+--- cpprest.orig/Release/src/CMakeLists.txt
++++ cpprest/Release/src/CMakeLists.txt
+@@ -250,21 +250,21 @@
+   install(
+     TARGETS ${CPPREST_TARGETS}
+     EXPORT cpprestsdk-targets
+-    RUNTIME DESTINATION bin
+-    LIBRARY DESTINATION lib
+-    ARCHIVE DESTINATION lib
++    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+   )
+ 
+   configure_file(../cmake/cpprestsdk-config.in.cmake "${CMAKE_CURRENT_BINARY_DIR}/cpprestsdk-config.cmake" @ONLY)
+ 
+   install(
+     FILES "${CMAKE_CURRENT_BINARY_DIR}/cpprestsdk-config.cmake"
+-    DESTINATION ${CPPREST_EXPORT_DIR}
++    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake
+   )
+   install(
+     EXPORT cpprestsdk-targets
+     FILE cpprestsdk-targets.cmake
+     NAMESPACE cpprestsdk::
+-    DESTINATION ${CPPREST_EXPORT_DIR}
++    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake
+   )
+ endif()
diff --git a/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb b/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
index fea5d4b2e..47183c576 100644
--- a/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
+++ b/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
@@ -6,10 +6,13 @@ LIC_FILES_CHKSUM = "file://${S}/../license.txt;md5=a2e15b954769218ff912468eecd6a
 DEPENDS = "openssl websocketpp zlib boost"
 
 SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \
-           file://fix-cmake-install.patch \
-           file://0001-Fix-a-build-problem-on-Clang.patch;patchdir=.. \
-           file://0002-Define-virtual-destructor.patch;patchdir=.. \
-           file://0001-disable-more-Werror-warnings.patch;patchdir=.. \
+           file://disable-outside-tests.patch;patchdir=.. \
+           file://disable-test-timeouts.patch;patchdir=.. \
+           file://disable-float-tests.patch;patchdir=.. \
+           file://fix-cmake-install.patch;patchdir=.. \
+           file://747.patch;patchdir=.. \
+           file://732.patch;patchdir=.. \
+           file://787.patch;patchdir=.. \
            "
 
 # tag 2.10.2
-- 
2.17.1



^ permalink raw reply related

* Re: [PATCH v2 00/19]  Fixes for sched/numa_balancing
From: Peter Zijlstra @ 2018-07-23 16:47 UTC (permalink / raw)
  To: Srikar Dronamraju
  Cc: Ingo Molnar, LKML, Mel Gorman, Rik van Riel, Thomas Gleixner
In-Reply-To: <20180723162954.GA2699@linux.vnet.ibm.com>

On Mon, Jul 23, 2018 at 09:29:54AM -0700, Srikar Dronamraju wrote:
> * Peter Zijlstra <peterz@infradead.org> [2018-07-23 17:21:47]:
> 
> > On Mon, Jul 23, 2018 at 08:09:55AM -0700, Srikar Dronamraju wrote:
> > 
> > > > >   sched/numa: Stop multiple tasks from moving to the cpu at the same time
> > > 
> > > This patch has go-ahead from Mel and Rik and no outstanding comments.
> > 
> > I left it out because it's part of the big xchg() mess.
> > 
> > In particular:
> > 
> > +       if (xchg(&rq->numa_migrate_on, 1))
> > +               return;
> > +
> > +       if (env->best_cpu != -1) {
> > +               rq = cpu_rq(env->best_cpu);
> > +               WRITE_ONCE(rq->numa_migrate_on, 0);
> > +       }
> > 
> > I'm again confused by clearing numa_migrate_on at this point..
> 
> First task choose a cpu to swap/migrate, sets the cpu to best_cpu and
> also numa_migrate_on.  Next it finds a better cpu to swap/move. Now if
> the task is able to move to the better cpu, then it should clear
> numa_migrate_on on the previous best_cpu.
> 
> If we dont reset numa_migrate_on on finding a better cpu, the
> numa_migrate_on stays set for the previous cpu, causing previous cpu to
> never be a target of numa balance.

Don't tell me, write better patches.

^ permalink raw reply

* Re: [PATCH nf] netfilter: nf_tables: move dumper state alloation into ->start
From: David Miller @ 2018-07-23 16:47 UTC (permalink / raw)
  To: fw; +Cc: netfilter-devel, netdev, cscnull
In-Reply-To: <20180723104714.24008-1-fw@strlen.de>

From: Florian Westphal <fw@strlen.de>
Date: Mon, 23 Jul 2018 12:47:14 +0200

> Shaochun Chen points out we leak dumper filter state allocations
> stored in dump_control->data in case there is an error before netlink sets
> cb_running (after which ->done will be called at some point).
> 
> In order to fix this, add .start functions and do the allocations
> there.
> 
> ->done is going to clean up, and in case error occurs before
> ->start invocation no cleanups need to be done anymore.
> 
> Reported-by: shaochun chen <cscnull@gmail.com>
> Signed-off-by: Florian Westphal <fw@strlen.de>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply

* RE: [PATCH 1/2] arm64: Get 'info->page_offset' from PT_LOAD segments to support KASLR boot cases
From: Kazuhito Hagio @ 2018-07-23 16:45 UTC (permalink / raw)
  To: Bhupesh Sharma; +Cc: kexec mailing list
In-Reply-To: <CACi5LpOKQ9TX9yWus6i9ZG_Ha8A+vPqs09o1Jh0B9O5vYED9BA@mail.gmail.com>

Hi Bhupesh,

On 7/22/2018 3:44 AM, Bhupesh Sharma wrote:
> Hello Kazu,
> 
> Many thanks for your review comments.
> 
> On Sat, Jul 21, 2018 at 3:18 AM, Kazuhito Hagio <k-hagio@ab.jp.nec.com> wrote:
>>
>> On 7/19/2018 1:43 AM, Bhupesh Sharma wrote:
>>> The existing methodology to obtain 'info->page_offset' from reading
>>> _stext symbol (from kallsyms) doesn't work well in KASLR boot cases on
>>> arm64 machines as the PAGE_OFFSET (or the virtual address which
>>> indicates the start of the linear region) can be randomized as well
>>> on basis of the kaslr-seed.
>>>
>>> Since the value of PAGE_OFFSET inside the kernel is randomized in such
>>> cases and there is no existing mechanism of conveying this value from
>>> kernel-space to user-space, so we can use the method used by archs like
>>> x86_64 to generate the 'info->page_offset' value from the PT_LOAD
>>> segments by subtracting the phy_addr from virt_addr of a PT_LOAD
>>> segment.
>>>
>>> This approach works fine both with KASLR and non-KASLR boot cases.
>>>
>>> I tested this on my qualcomm-amberwing board. Here are some logs from
>>> the KASLR boot cases:
>>>
>>> - Verify that the EFI firmware supports 'kaslr-seed':
>>>
>>>       chosen {
>>>               kaslr-seed = <0x0 0x0>;
>>>               <..snip..>
>>>       };
>>>
>>> - Verify that '--mem-usage' works well after this fix as well (I used
>>>   kernel 4.18.0-rc4+ for my checks):
>>>
>>> The kernel version is not supported.
>>> The makedumpfile operation may be incomplete.
>>>
>>> TYPE          PAGES                   EXCLUDABLE      DESCRIPTION
>>> ----------------------------------------------------------------------
>>> ZERO          4396                    yes             Pages filled
>>> with zero
>>> NON_PRI_CACHE 27859                   yes             Cache pages
>>> without private flag
>>> PRI_CACHE     18490                   yes             Cache pages with
>>> private flag
>>> USER          2728                    yes             User process
>>> pages
>>> FREE          1465848                 yes             Free pages
>>> KERN_DATA     18537                   no              Dumpable kernel
>>> data
>>>
>>> page size:            65536
>>> Total pages on system:        1537858
>>> Total size on system: 100785061888     Byte
>>>
>>> Signed-off-by: Bhupesh Sharma <bhsharma@redhat.com>
>>> ---
>>>  arch/arm64.c   | 23 ++++++++++++++++++-----
>>>  common.h       |  1 +
>>>  makedumpfile.h |  1 +
>>>  3 files changed, 20 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/arch/arm64.c b/arch/arm64.c
>>> index 2fd3e1874376..9e8c77c76935 100644
>>> --- a/arch/arm64.c
>>> +++ b/arch/arm64.c
>>> @@ -265,6 +265,9 @@ get_xen_info_arm64(void)
>>>  int
>>>  get_versiondep_info_arm64(void)
>>>  {
>>> +     int i;
>>> +     unsigned long long phys_start;
>>> +     unsigned long long virt_start;
>>>       ulong _stext;
>>>
>>>       _stext = get_stext_symbol();
>>> @@ -289,12 +292,22 @@ get_versiondep_info_arm64(void)
>>>               return FALSE;
>>>       }
>>>
>>
>>> -     info->page_offset = (0xffffffffffffffffUL) << (va_bits - 1);
>>> -
>>> -     DEBUG_MSG("page_offset=%lx, va_bits=%d\n", info->page_offset,
>>> -                     va_bits);
>>
>> According to makedumpfile commit 4944f93484 ("x86_64: Calculate page_offset
>> in case of re-filtering/sadump/virsh dump"), in case of re-filtering,
>> we don't have any PT_LOAD.  So, with this patch, we cannot re-filter
>> dump file on arm64 system?
>>
>> If we cannot, is it better to leave the above behind the following
>> pt_load section for re-filtering non-KASLR dump?
>>
>>> +     if (get_num_pt_loads()) {
>>> +             for (i = 0;
>>> +                     get_pt_load(i, &phys_start, NULL, &virt_start, NULL);
>>> +                     i++) {
>>> +                     if (virt_start != NOT_KV_ADDR
>>> +                                     && virt_start < __START_KERNEL_map
>>> +                                     && phys_start != NOT_PADDR && phys_start != NOT_PADDR_ARM64) {
>>> +                             info->page_offset = virt_start - phys_start;
>>> +                             DEBUG_MSG("info->page_offset: %lx, VA_BITS: %d\n",
>>> +                                             info->page_offset, va_bits);
>>> +                             return TRUE;
>>> +                     }
>>> +             }
>>> +     }
>>
>> I'll adjust some indents for readability.
>>
>>>
>>> -     return TRUE;
>>> +     return FALSE;
>>>  }
>>>
>>>  /*
>>> diff --git a/common.h b/common.h
>>> index 6e2f657a79c7..a8181777dbb7 100644
>>> --- a/common.h
>>> +++ b/common.h
>>> @@ -48,6 +48,7 @@
>>>  #define NOT_MEMMAP_ADDR      (0x0)
>>>  #define NOT_KV_ADDR  (0x0)
>>>  #define NOT_PADDR    (ULONGLONG_MAX)
>>
>>> +#define NOT_PADDR_ARM64      (0x0000000010a80000UL)
>>
>> I think that this should not be in common.h, because it's not for
>> arch-specific definitions, so I'll move it to makedumpfile.h.
>>
>>>  #define BADADDR      ((ulong)(-1))
>>>
>>>  #endif  /* COMMON_H */
>>> diff --git a/makedumpfile.h b/makedumpfile.h
>>> index 5ff94b8e4ac6..5297279f0f3b 100644
>>> --- a/makedumpfile.h
>>> +++ b/makedumpfile.h
>>> @@ -2020,6 +2020,7 @@ struct domain_list {
>>>  #define MFNS_PER_FRAME               (info->page_size / sizeof(unsigned long))
>>>
>>>  #ifdef __aarch64__
>>> +#define __START_KERNEL_map           (0xffffffff80000000UL)
>>
>> This #ifdef here is for the definitions related to Xen extraction.
>> I'll move it to the same place as the above.
>>
>>>  unsigned long long kvtop_xen_arm64(unsigned long kvaddr);
>>>  #define kvtop_xen(X) kvtop_xen_arm64(X)
>>>  #endif /* aarch64 */
>>>
>>
>> I attached a patch that was applied my suggestions.
>> How about it?
> 
> I agree. The patch looks good with the suggested changes.
> Please go ahead and feel free to apply the modified patch.

OK, I'll apply it.

With respect to the 2/2 patch, I'm waiting for the kernel patch
to be merged.

If need be, I can apply the 1/2 patch separately from the 2/2 patch,
because I think they are not directly connected with each other.

Thanks,
Kazu

p.s. it seems that I cannot send emails to gmail for now,
so dropped your gmail address. sorry for the inconvenience.

> 
> Thanks a lot for your help.
> Regards,
> Bhupesh
>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

^ permalink raw reply

* Re: [Qemu-devel] [PATCH v3 26/40] target/mips: Implement CP0 Config0.WR bit functionality
From: Richard Henderson @ 2018-07-23 16:46 UTC (permalink / raw)
  To: Stefan Markovic, qemu-devel
  Cc: laurent, riku.voipio, philippe.mathieu.daude, aurelien, amarkovic,
	smarkovic, pjovanovic, pburton
In-Reply-To: <1532004912-13899-27-git-send-email-stefan.markovic@rt-rk.com>

On 07/19/2018 05:54 AM, Stefan Markovic wrote:
> From: Stefan Markovic <smarkovic@wavecomp.com>
> 
> Add testing Config0.WR bit into watch exception handling logic.

Config1, here and in the subject.

> 
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>
> ---
>  target/mips/helper.c    | 12 +++++++++++-
>  target/mips/translate.c | 22 ++++++++++++++++------
>  2 files changed, 27 insertions(+), 7 deletions(-)
> 
> diff --git a/target/mips/helper.c b/target/mips/helper.c
> index 9535131..dc8f2a5 100644
> --- a/target/mips/helper.c
> +++ b/target/mips/helper.c
> @@ -749,6 +749,14 @@ void mips_cpu_do_interrupt(CPUState *cs)
>          (env->hflags & MIPS_HFLAG_DM)) {
>          cs->exception_index = EXCP_DINT;
>      }
> +
> +    if ((cs->exception_index == EXCP_DWATCH ||
> +        cs->exception_index == EXCP_DFWATCH ||
> +        cs->exception_index == EXCP_IWATCH) &&
> +        (env->CP0_Config1 & (1 << CP0C1_WR))) {
> +        cs->exception_index = EXCP_NONE;
> +    }

This will cause the switch below to abort.

In any case, I think this test is a mistake -- you should have (and probably
did, given a presumed lack of abort during testing) prevent these exceptions
from being triggered in the first place.

>      case EXCP_SRESET:
>          env->CP0_Status |= (1 << CP0St_SR);
> -        memset(env->CP0_WatchLo, 0, sizeof(env->CP0_WatchLo));
> +        if (env->CP0_Config1 & (1 << CP0C1_WR)) {
> +            memset(env->CP0_WatchLo, 0, sizeof(env->CP0_WatchLo));
> +        }

If it's unused/missing, why does it hurt to reset to 0?

> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -5622,6 +5622,7 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
>          case 5:
>          case 6:
>          case 7:
> +            CP0_CHECK(ctx->CP0_Config1 & (1 << CP0C1_WR));
>              gen_helper_1e0i(mfc0_watchlo, arg, sel);
>              rn = "WatchLo";
>              break;
> @@ -5639,6 +5640,7 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
>          case 5:
>          case 6:
>          case 7:
> +            CP0_CHECK(ctx->CP0_Config1 & (1 << CP0C1_WR));
>              gen_helper_1e0i(mfc0_watchhi, arg, sel);
>              rn = "WatchHi";
>              break;
> @@ -6321,6 +6323,7 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
>          case 5:
>          case 6:
>          case 7:
> +            CP0_CHECK(ctx->CP0_Config1 & (1 << CP0C1_WR));
>              gen_helper_0e1i(mtc0_watchlo, arg, sel);
>              rn = "WatchLo";
>              break;
> @@ -6338,6 +6341,7 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
>          case 5:
>          case 6:
>          case 7:
> +            CP0_CHECK(ctx->CP0_Config1 & (1 << CP0C1_WR));
>              gen_helper_0e1i(mtc0_watchhi, arg, sel);
>              rn = "WatchHi";
>              break;
> @@ -7024,6 +7028,7 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
>          case 5:
>          case 6:
>          case 7:
> +            CP0_CHECK(ctx->CP0_Config1 & (1 << CP0C1_WR));
>              gen_helper_1e0i(dmfc0_watchlo, arg, sel);
>              rn = "WatchLo";
>              break;
> @@ -7041,6 +7046,7 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
>          case 5:
>          case 6:
>          case 7:
> +            CP0_CHECK(ctx->CP0_Config1 & (1 << CP0C1_WR));
>              gen_helper_1e0i(mfc0_watchhi, arg, sel);
>              rn = "WatchHi";
>              break;
> @@ -7705,6 +7711,7 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
>          case 5:
>          case 6:
>          case 7:
> +            CP0_CHECK(ctx->CP0_Config1 & (1 << CP0C1_WR));
>              gen_helper_0e1i(mtc0_watchlo, arg, sel);
>              rn = "WatchLo";
>              break;
> @@ -7722,6 +7729,7 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
>          case 5:
>          case 6:
>          case 7:
> +            CP0_CHECK(ctx->CP0_Config1 & (1 << CP0C1_WR));
>              gen_helper_0e1i(mtc0_watchhi, arg, sel);
>              rn = "WatchHi";
>              break;

These are probably the only changes required -- preventing the missing
registers from being set at runtime.


> @@ -25281,14 +25289,16 @@ void cpu_state_reset(CPUMIPSState *env)
>         no performance counters. */
>      env->CP0_IntCtl = 0xe0000000;
>      {
> -        int i;
> +        if (env->CP0_Config1 & (1 << CP0C1_WR)) {
> +            int i;
>  
> -        for (i = 0; i < 7; i++) {
> -            env->CP0_WatchLo[i] = 0;
> -            env->CP0_WatchHi[i] = 0x80000000;
> +            for (i = 0; i < 7; i++) {
> +                env->CP0_WatchLo[i] = 0;
> +                env->CP0_WatchHi[i] = 0x80000000;
> +            }
> +            env->CP0_WatchLo[7] = 0;
> +            env->CP0_WatchHi[7] = 0;
>          }
> -        env->CP0_WatchLo[7] = 0;
> -        env->CP0_WatchHi[7] = 0;
>      }

Again, what difference does the reset value make?


r~

^ permalink raw reply

* [PATCH net-next] selftests: forwarding: gre_multipath: Drop IPv6 tests
From: David Miller @ 2018-07-23 16:47 UTC (permalink / raw)

In-Reply-To: <cf0e380baf6a6aa5cf384017e8d69fec79750cfe.1532341813.git.petrm@mellanox.com>

From: Petr Machata <petrm@mellanox.com>
Date: Mon, 23 Jul 2018 12:33:08 +0200

> Support for device-only IPv6 multipath next hops was dropped in
> commit 33bd5ac54dc4 ("net/ipv6: Revert attempt to simplify route replace
> and append") and as of commit b5d2d75e079a ("net/ipv6: Do not allow
> device only routes via the multipath API"), attempts to add a next hop
> like that yield an explicit diagnostic.
> 
> Correspondingly, drop the IPv6 parts of GRE multipath test that are
> supposed to test that code.
> 
> Signed-off-by: Petr Machata <petrm at mellanox.com>

Applied, thank you.
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* [PATCH net-next] selftests: forwarding: gre_multipath: Drop IPv6 tests
From: davem @ 2018-07-23 16:47 UTC (permalink / raw)

In-Reply-To: <cf0e380baf6a6aa5cf384017e8d69fec79750cfe.1532341813.git.petrm@mellanox.com>

From: Petr Machata <petrm at mellanox.com>
Date: Mon, 23 Jul 2018 12:33:08 +0200

> Support for device-only IPv6 multipath next hops was dropped in
> commit 33bd5ac54dc4 ("net/ipv6: Revert attempt to simplify route replace
> and append") and as of commit b5d2d75e079a ("net/ipv6: Do not allow
> device only routes via the multipath API"), attempts to add a next hop
> like that yield an explicit diagnostic.
> 
> Correspondingly, drop the IPv6 parts of GRE multipath test that are
> supposed to test that code.
> 
> Signed-off-by: Petr Machata <petrm at mellanox.com>

Applied, thank you.
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* [U-Boot] ti_omap3_common: Add CONFIG_SYS_NS16550_COMx entries
From: Tom Rini @ 2018-07-23 16:46 UTC (permalink / raw)
  To: u-boot
In-Reply-To: <CAHCN7xLDT=+L2i=9T__HzKHD+130mDbNr=xj5vuX3Cy-Kwmj-w@mail.gmail.com>

On Mon, Jul 23, 2018 at 10:53:02AM -0500, Adam Ford wrote:
> On Mon, Mar 19, 2018 at 5:35 PM Tom Rini <trini@konsulko.com> wrote:
> >
> > On Sun, Mar 04, 2018 at 04:46:53PM -0600, Adam Ford wrote:
> >
> > > Several boards do not use the default UART3, so they do a check
> > > for ifdef CONFIG_SPL_BUILD and enable the pointer for
> > > CONFIG_SYS_NS16550_COMx to point to OMAP34XX_UARTx.
> > >
> > > Let's consoldate this all into one place, and remove them from the
> > > individual boards.
> > >
> > > Signed-off-by: Adam Ford <aford173@gmail.com>
> > >
> > > diff --git a/include/configs/omap3_cairo.h b/include/configs/omap3_cairo.h
> > > index 57ac3ec..c387602 100644
> >
> > Deferred because it relies on the CONFIG_SERIALn patch.
> 
> Does it really depend on that patch?  The intent behind it was to
> point all the NS16550_COMx to their respective OMAP34XX ports in the
> common file, so the individual boards don't need to manually set them.
> My understanding is that the serial port has an index which dictates
> which of the COMx will be used in SPL so having all COMx ports
> pointing to each of the OMAP34XX references shouldn't break anything.

Context-wise, yes, it depended on that other series in order to apply.
If you can re-spin it stand-alone that would be great, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180723/68e8c2e5/attachment.sig>

^ permalink raw reply

* [Qemu-devel] [PULL 1/7] qemu-iotests: Use host_device instead of file in 149
From: Kevin Wolf @ 2018-07-23 16:45 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, qemu-devel, peter.maydell
In-Reply-To: <20180723164530.26599-1-kwolf@redhat.com>

The test case uses block devices with driver=file, which causes the test
to fail after commit 230ff73904 added a deprecation warning for this.
Fix the test case to use driver=host_device and update the reference
output accordingly.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/qemu-iotests/149     |   2 +-
 tests/qemu-iotests/149.out | 344 ++++++++++++++++++++++-----------------------
 2 files changed, 173 insertions(+), 173 deletions(-)

diff --git a/tests/qemu-iotests/149 b/tests/qemu-iotests/149
index d3ffa259db..9e0cad76f9 100755
--- a/tests/qemu-iotests/149
+++ b/tests/qemu-iotests/149
@@ -259,7 +259,7 @@ def qemu_io_image_args(config, dev=False):
     if dev:
         return [
             "--image-opts",
-            "driver=file,filename=%s" % config.device_path()]
+            "driver=host_device,filename=%s" % config.device_path()]
     else:
         return [
             "--object",
diff --git a/tests/qemu-iotests/149.out b/tests/qemu-iotests/149.out
index 5dea00bfa8..1407ce6dad 100644
--- a/tests/qemu-iotests/149.out
+++ b/tests/qemu-iotests/149.out
@@ -7,13 +7,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain64 --key-size 512 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha1.img qiotest-145-aes-256-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -43,13 +43,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha1.img qiotest-145-aes-256-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -67,13 +67,13 @@ Formatting 'TEST_DIR/luks-aes-256-xts-plain64-sha1.img', fmt=luks size=439804651
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha1.img qiotest-145-aes-256-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -103,13 +103,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha1.img qiotest-145-aes-256-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -127,13 +127,13 @@ sudo cryptsetup -q -v luksFormat --cipher twofish-xts-plain64 --key-size 512 --h
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-twofish-256-xts-plain64-sha1.img qiotest-145-twofish-256-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -163,13 +163,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-twofish-256-xts-plain64-sha1.img qiotest-145-twofish-256-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -187,13 +187,13 @@ Formatting 'TEST_DIR/luks-twofish-256-xts-plain64-sha1.img', fmt=luks size=43980
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-twofish-256-xts-plain64-sha1.img qiotest-145-twofish-256-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -223,13 +223,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-twofish-256-xts-plain64-sha1.img qiotest-145-twofish-256-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -247,13 +247,13 @@ sudo cryptsetup -q -v luksFormat --cipher serpent-xts-plain64 --key-size 512 --h
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-256-xts-plain64-sha1.img qiotest-145-serpent-256-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -283,13 +283,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-256-xts-plain64-sha1.img qiotest-145-serpent-256-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -307,13 +307,13 @@ Formatting 'TEST_DIR/luks-serpent-256-xts-plain64-sha1.img', fmt=luks size=43980
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-256-xts-plain64-sha1.img qiotest-145-serpent-256-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -343,13 +343,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-256-xts-plain64-sha1.img qiotest-145-serpent-256-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-256-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -367,13 +367,13 @@ sudo cryptsetup -q -v luksFormat --cipher cast5-cbc-plain64 --key-size 128 --has
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-cast5-128-cbc-plain64-sha1.img qiotest-145-cast5-128-cbc-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -403,13 +403,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-cast5-128-cbc-plain64-sha1.img qiotest-145-cast5-128-cbc-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -427,13 +427,13 @@ Formatting 'TEST_DIR/luks-cast5-128-cbc-plain64-sha1.img', fmt=luks size=4398046
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-cast5-128-cbc-plain64-sha1.img qiotest-145-cast5-128-cbc-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -463,13 +463,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-cast5-128-cbc-plain64-sha1.img qiotest-145-cast5-128-cbc-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-cast5-128-cbc-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -488,13 +488,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-cbc-plain --key-size 256 --hash sh
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain-sha1.img qiotest-145-aes-256-cbc-plain-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -524,13 +524,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain-sha1.img qiotest-145-aes-256-cbc-plain-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -548,13 +548,13 @@ Formatting 'TEST_DIR/luks-aes-256-cbc-plain-sha1.img', fmt=luks size=43980465111
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain-sha1.img qiotest-145-aes-256-cbc-plain-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -584,13 +584,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain-sha1.img qiotest-145-aes-256-cbc-plain-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -608,13 +608,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-cbc-plain64 --key-size 256 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain64-sha1.img qiotest-145-aes-256-cbc-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -644,13 +644,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain64-sha1.img qiotest-145-aes-256-cbc-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -668,13 +668,13 @@ Formatting 'TEST_DIR/luks-aes-256-cbc-plain64-sha1.img', fmt=luks size=439804651
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain64-sha1.img qiotest-145-aes-256-cbc-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -704,13 +704,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain64-sha1.img qiotest-145-aes-256-cbc-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -728,13 +728,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 --
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-essiv-sha256-sha1.img qiotest-145-aes-256-cbc-essiv-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -764,13 +764,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-essiv-sha256-sha1.img qiotest-145-aes-256-cbc-essiv-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -788,13 +788,13 @@ Formatting 'TEST_DIR/luks-aes-256-cbc-essiv-sha256-sha1.img', fmt=luks size=4398
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-essiv-sha256-sha1.img qiotest-145-aes-256-cbc-essiv-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -824,13 +824,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-essiv-sha256-sha1.img qiotest-145-aes-256-cbc-essiv-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -848,13 +848,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-essiv:sha256 --key-size 512 --
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-essiv-sha256-sha1.img qiotest-145-aes-256-xts-essiv-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -884,13 +884,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-essiv-sha256-sha1.img qiotest-145-aes-256-xts-essiv-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -908,13 +908,13 @@ Formatting 'TEST_DIR/luks-aes-256-xts-essiv-sha256-sha1.img', fmt=luks size=4398
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-essiv-sha256-sha1.img qiotest-145-aes-256-xts-essiv-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -944,13 +944,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-essiv-sha256-sha1.img qiotest-145-aes-256-xts-essiv-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-essiv-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -968,13 +968,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain64 --key-size 256 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-128-xts-plain64-sha256-sha1.img qiotest-145-aes-128-xts-plain64-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1004,13 +1004,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-128-xts-plain64-sha256-sha1.img qiotest-145-aes-128-xts-plain64-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1028,13 +1028,13 @@ Formatting 'TEST_DIR/luks-aes-128-xts-plain64-sha256-sha1.img', fmt=luks size=43
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-128-xts-plain64-sha256-sha1.img qiotest-145-aes-128-xts-plain64-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1064,13 +1064,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-128-xts-plain64-sha256-sha1.img qiotest-145-aes-128-xts-plain64-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-128-xts-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1088,13 +1088,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain64 --key-size 384 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-192-xts-plain64-sha256-sha1.img qiotest-145-aes-192-xts-plain64-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1124,13 +1124,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-192-xts-plain64-sha256-sha1.img qiotest-145-aes-192-xts-plain64-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1148,13 +1148,13 @@ Formatting 'TEST_DIR/luks-aes-192-xts-plain64-sha256-sha1.img', fmt=luks size=43
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-192-xts-plain64-sha256-sha1.img qiotest-145-aes-192-xts-plain64-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1184,13 +1184,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-192-xts-plain64-sha256-sha1.img qiotest-145-aes-192-xts-plain64-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-192-xts-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1208,13 +1208,13 @@ sudo cryptsetup -q -v luksFormat --cipher twofish-xts-plain64 --key-size 256 --h
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-twofish-128-xts-plain64-sha1.img qiotest-145-twofish-128-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1244,13 +1244,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-twofish-128-xts-plain64-sha1.img qiotest-145-twofish-128-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1268,13 +1268,13 @@ Formatting 'TEST_DIR/luks-twofish-128-xts-plain64-sha1.img', fmt=luks size=43980
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-twofish-128-xts-plain64-sha1.img qiotest-145-twofish-128-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1304,13 +1304,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-twofish-128-xts-plain64-sha1.img qiotest-145-twofish-128-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-twofish-128-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1329,13 +1329,13 @@ sudo cryptsetup -q -v luksFormat --cipher serpent-xts-plain64 --key-size 256 --h
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-128-xts-plain64-sha1.img qiotest-145-serpent-128-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1365,13 +1365,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-128-xts-plain64-sha1.img qiotest-145-serpent-128-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1389,13 +1389,13 @@ Formatting 'TEST_DIR/luks-serpent-128-xts-plain64-sha1.img', fmt=luks size=43980
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-128-xts-plain64-sha1.img qiotest-145-serpent-128-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1425,13 +1425,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-128-xts-plain64-sha1.img qiotest-145-serpent-128-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-128-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1449,13 +1449,13 @@ sudo cryptsetup -q -v luksFormat --cipher serpent-xts-plain64 --key-size 384 --h
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-192-xts-plain64-sha1.img qiotest-145-serpent-192-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1485,13 +1485,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-192-xts-plain64-sha1.img qiotest-145-serpent-192-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1509,13 +1509,13 @@ Formatting 'TEST_DIR/luks-serpent-192-xts-plain64-sha1.img', fmt=luks size=43980
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-192-xts-plain64-sha1.img qiotest-145-serpent-192-xts-plain64-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1545,13 +1545,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-serpent-192-xts-plain64-sha1.img qiotest-145-serpent-192-xts-plain64-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-serpent-192-xts-plain64-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1571,13 +1571,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain64 --key-size 512 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha224.img qiotest-145-aes-256-xts-plain64-sha224
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1607,13 +1607,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha224.img qiotest-145-aes-256-xts-plain64-sha224
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1631,13 +1631,13 @@ Formatting 'TEST_DIR/luks-aes-256-xts-plain64-sha224.img', fmt=luks size=4398046
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha224.img qiotest-145-aes-256-xts-plain64-sha224
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1667,13 +1667,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha224.img qiotest-145-aes-256-xts-plain64-sha224
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha224
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1691,13 +1691,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain64 --key-size 512 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha256.img qiotest-145-aes-256-xts-plain64-sha256
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1727,13 +1727,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha256.img qiotest-145-aes-256-xts-plain64-sha256
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1751,13 +1751,13 @@ Formatting 'TEST_DIR/luks-aes-256-xts-plain64-sha256.img', fmt=luks size=4398046
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha256.img qiotest-145-aes-256-xts-plain64-sha256
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1787,13 +1787,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha256.img qiotest-145-aes-256-xts-plain64-sha256
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha256
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1811,13 +1811,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain64 --key-size 512 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha384.img qiotest-145-aes-256-xts-plain64-sha384
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1847,13 +1847,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha384.img qiotest-145-aes-256-xts-plain64-sha384
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1871,13 +1871,13 @@ Formatting 'TEST_DIR/luks-aes-256-xts-plain64-sha384.img', fmt=luks size=4398046
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha384.img qiotest-145-aes-256-xts-plain64-sha384
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1907,13 +1907,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha384.img qiotest-145-aes-256-xts-plain64-sha384
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha384
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1931,13 +1931,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain64 --key-size 512 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha512.img qiotest-145-aes-256-xts-plain64-sha512
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1967,13 +1967,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha512.img qiotest-145-aes-256-xts-plain64-sha512
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -1991,13 +1991,13 @@ Formatting 'TEST_DIR/luks-aes-256-xts-plain64-sha512.img', fmt=luks size=4398046
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha512.img qiotest-145-aes-256-xts-plain64-sha512
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2027,13 +2027,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-sha512.img qiotest-145-aes-256-xts-plain64-sha512
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-sha512
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2051,13 +2051,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain64 --key-size 512 --hash
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-ripemd160.img qiotest-145-aes-256-xts-plain64-ripemd160
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2087,13 +2087,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-ripemd160.img qiotest-145-aes-256-xts-plain64-ripemd160
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2111,13 +2111,13 @@ Formatting 'TEST_DIR/luks-aes-256-xts-plain64-ripemd160.img', fmt=luks size=4398
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-ripemd160.img qiotest-145-aes-256-xts-plain64-ripemd160
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2147,13 +2147,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain64-ripemd160.img qiotest-145-aes-256-xts-plain64-ripemd160
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain64-ripemd160
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2171,13 +2171,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-xts-plain --key-size 512 --hash sh
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain-sha1-pwslot3.img qiotest-145-aes-256-xts-plain-sha1-pwslot3
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2207,13 +2207,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain-sha1-pwslot3.img qiotest-145-aes-256-xts-plain-sha1-pwslot3
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwslot3
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2245,13 +2245,13 @@ sudo cryptsetup -q -v luksAddKey TEST_DIR/luks-aes-256-xts-plain-sha1-pwallslots
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain-sha1-pwallslots.img qiotest-145-aes-256-xts-plain-sha1-pwallslots
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2281,13 +2281,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain-sha1-pwallslots.img qiotest-145-aes-256-xts-plain-sha1-pwallslots
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2305,13 +2305,13 @@ Formatting 'TEST_DIR/luks-aes-256-xts-plain-sha1-pwallslots.img', fmt=luks size=
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain-sha1-pwallslots.img qiotest-145-aes-256-xts-plain-sha1-pwallslots
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2341,13 +2341,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-xts-plain-sha1-pwallslots.img qiotest-145-aes-256-xts-plain-sha1-pwallslots
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-xts-plain-sha1-pwallslots
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2365,13 +2365,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 --
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-essiv-auto-sha1.img qiotest-145-aes-256-cbc-essiv-auto-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2401,13 +2401,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-essiv-auto-sha1.img qiotest-145-aes-256-cbc-essiv-auto-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2425,13 +2425,13 @@ Formatting 'TEST_DIR/luks-aes-256-cbc-essiv-auto-sha1.img', fmt=luks size=439804
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-essiv-auto-sha1.img qiotest-145-aes-256-cbc-essiv-auto-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2461,13 +2461,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-essiv-auto-sha1.img qiotest-145-aes-256-cbc-essiv-auto-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-essiv-auto-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2485,13 +2485,13 @@ sudo cryptsetup -q -v luksFormat --cipher aes-cbc-plain64:sha256 --key-size 256
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain64-sha256-sha1.img qiotest-145-aes-256-cbc-plain64-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2521,13 +2521,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain64-sha256-sha1.img qiotest-145-aes-256-cbc-plain64-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2545,13 +2545,13 @@ Formatting 'TEST_DIR/luks-aes-256-cbc-plain64-sha256-sha1.img', fmt=luks size=43
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain64-sha256-sha1.img qiotest-145-aes-256-cbc-plain64-sha256-sha1
 # Write test pattern 0xa7
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
-qemu-io -c write -P 0xa7 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
+qemu-io -c write -P 0xa7 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Write test pattern 0x13
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
-qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
+qemu-io -c write -P 0x13 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
 wrote 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
@@ -2581,13 +2581,13 @@ wrote 10485760/10485760 bytes at offset 3298534883328
 sudo cryptsetup -q -v luksOpen TEST_DIR/luks-aes-256-cbc-plain64-sha256-sha1.img qiotest-145-aes-256-cbc-plain64-sha256-sha1
 # Read test pattern 0x91
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
-qemu-io -c read -P 0x91 100M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
+qemu-io -c read -P 0x91 100M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 104857600
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
 # Read test pattern 0x5e
 sudo chown UID:GID /dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
-qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=file,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
+qemu-io -c read -P 0x5e 3145728M 10M --image-opts driver=host_device,filename=/dev/mapper/qiotest-145-aes-256-cbc-plain64-sha256-sha1
 read 10485760/10485760 bytes at offset 3298534883328
 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 
-- 
2.13.6

^ permalink raw reply related

* [GIT PULL] Amlogic 64-bit DT updates for v4.19, round 2
From: Kevin Hilman @ 2018-07-23 16:46 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CAOesGMg5iPtWaP2XOm7+J46kOQfczoc7HstcyM=pAVcMQbCubQ@mail.gmail.com>

On Mon, Jul 23, 2018 at 11:17 AM Olof Johansson <olof@lixom.net> wrote:
>
> On Mon, Jul 23, 2018 at 5:50 AM, Kevin Hilman <khilman@baylibre.com> wrote:
> > Olof Johansson <olof@lixom.net> writes:
> >
> >> On Fri, Jul 20, 2018 at 11:30:15AM -0500, Kevin Hilman wrote:
> >>> Olof, Arnd,
> >>>
> >>> A second round of DT updates for Amlogic, directly on top of the redo of
> >>> the first one.
> >>>
> >>> This includes a merge of a branch already queued in the clk tree because
> >>> of the dependency on clock headers used in the DT changes here..
> >>>
> >>> Kevin
> >>>
> >>>
> >>> The following changes since commit 89803e8b26569bdf5798f8745a4c708bf9360ee6:
> >>>
> >>>   ARM64: dts: meson-axg: add pdm pins (2018-07-20 08:18:37 -0700)
> >>>
> >>> are available in the git repository at:
> >>>
> >>>   https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic.git tags/amlogic-dt64-2
> >>>
> >>> for you to fetch changes up to fcf775a1e6717b7157b1ea626028b7e039b3c989:
> >>>
> >>>   Merge branch 'v4.19/dt64' into tmp/aml-rebuild (2018-07-20 09:05:11 -0700)
> >>>
> >>> ----------------------------------------------------------------
> >>> Amlogic 64-bit DT changes for v4.19, round 2
> >>> - new SoC: S905W
> >>> - new boards: based on S905W: Amlogic P281, Oranth Tanix TX3 Mini
> >>> - AXG: add DT for new audio clock controller
> >>>
> >>> ----------------------------------------------------------------
> >>
> >> Something happened to your diffstat here. It's also based on -rc5?
> >
> > My branch is/was based on -rc1 but the dependency branch from the clock
> > tree is based on -rc5.  That made the diffstat include -rc5, which was
> > too noisy, so I removed it but then forgot to add the simplified
> > version.
>
> Ah, thanks. It's unfortunate that this brings in a new -rc but not the
> end of the world. Will merge later today or tomorrow depending on
> travel progress.

Actually, ignore this one and let me respin this tag and PR.

Both my base branch and the clock branch are based on -rc1.  I screwed
up the tag creation.   A redo is coming shortly.

Kevin

^ permalink raw reply

* [GIT PULL] Amlogic 64-bit DT updates for v4.19, round 2
From: Kevin Hilman @ 2018-07-23 16:46 UTC (permalink / raw)
  To: linus-amlogic
In-Reply-To: <CAOesGMg5iPtWaP2XOm7+J46kOQfczoc7HstcyM=pAVcMQbCubQ@mail.gmail.com>

On Mon, Jul 23, 2018 at 11:17 AM Olof Johansson <olof@lixom.net> wrote:
>
> On Mon, Jul 23, 2018 at 5:50 AM, Kevin Hilman <khilman@baylibre.com> wrote:
> > Olof Johansson <olof@lixom.net> writes:
> >
> >> On Fri, Jul 20, 2018 at 11:30:15AM -0500, Kevin Hilman wrote:
> >>> Olof, Arnd,
> >>>
> >>> A second round of DT updates for Amlogic, directly on top of the redo of
> >>> the first one.
> >>>
> >>> This includes a merge of a branch already queued in the clk tree because
> >>> of the dependency on clock headers used in the DT changes here..
> >>>
> >>> Kevin
> >>>
> >>>
> >>> The following changes since commit 89803e8b26569bdf5798f8745a4c708bf9360ee6:
> >>>
> >>>   ARM64: dts: meson-axg: add pdm pins (2018-07-20 08:18:37 -0700)
> >>>
> >>> are available in the git repository at:
> >>>
> >>>   https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic.git tags/amlogic-dt64-2
> >>>
> >>> for you to fetch changes up to fcf775a1e6717b7157b1ea626028b7e039b3c989:
> >>>
> >>>   Merge branch 'v4.19/dt64' into tmp/aml-rebuild (2018-07-20 09:05:11 -0700)
> >>>
> >>> ----------------------------------------------------------------
> >>> Amlogic 64-bit DT changes for v4.19, round 2
> >>> - new SoC: S905W
> >>> - new boards: based on S905W: Amlogic P281, Oranth Tanix TX3 Mini
> >>> - AXG: add DT for new audio clock controller
> >>>
> >>> ----------------------------------------------------------------
> >>
> >> Something happened to your diffstat here. It's also based on -rc5?
> >
> > My branch is/was based on -rc1 but the dependency branch from the clock
> > tree is based on -rc5.  That made the diffstat include -rc5, which was
> > too noisy, so I removed it but then forgot to add the simplified
> > version.
>
> Ah, thanks. It's unfortunate that this brings in a new -rc but not the
> end of the world. Will merge later today or tomorrow depending on
> travel progress.

Actually, ignore this one and let me respin this tag and PR.

Both my base branch and the clock branch are based on -rc1.  I screwed
up the tag creation.   A redo is coming shortly.

Kevin

^ permalink raw reply

* [Qemu-devel] [PULL 6/7] iotests: Disallow compat=0.10 in 223
From: Kevin Wolf @ 2018-07-23 16:45 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, qemu-devel, peter.maydell
In-Reply-To: <20180723164530.26599-1-kwolf@redhat.com>

From: Max Reitz <mreitz@redhat.com>

223 tests persistent dirty bitmaps which are not supported in
compat=0.10, so that option is unsupported for this test.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Tested-by: John Snow <jsnow@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/qemu-iotests/223 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/qemu-iotests/223 b/tests/qemu-iotests/223
index b63b7a4f9e..8b1859c2dd 100755
--- a/tests/qemu-iotests/223
+++ b/tests/qemu-iotests/223
@@ -40,6 +40,8 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
 _supported_fmt qcow2
 _supported_proto file # uses NBD as well
 _supported_os Linux
+# Persistent dirty bitmaps require compat=1.1
+_unsupported_imgopts 'compat=0.10'
 
 function do_run_qemu()
 {
-- 
2.13.6

^ permalink raw reply related

* [Qemu-devel] [PULL 7/7] block/vvfat: Disable debug message by default
From: Kevin Wolf @ 2018-07-23 16:45 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, qemu-devel, peter.maydell
In-Reply-To: <20180723164530.26599-1-kwolf@redhat.com>

From: Thomas Huth <thuth@redhat.com>

It's annoying to see this debug message every time you use vvfat.
Disable it with the DLOG() macro by default, as it is done with the
other debug messages in this file.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/vvfat.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/vvfat.c b/block/vvfat.c
index c7d2ed2d96..fc41841a5c 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -1245,8 +1245,8 @@ static int vvfat_open(BlockDriverState *bs, QDict *options, int flags,
     s->fat2 = NULL;
     s->downcase_short_names = 1;
 
-    fprintf(stderr, "vvfat %s chs %d,%d,%d\n",
-            dirname, cyls, heads, secs);
+    DLOG(fprintf(stderr, "vvfat %s chs %d,%d,%d\n",
+                 dirname, cyls, heads, secs));
 
     s->sector_count = cyls * heads * secs - s->offset_to_bootsector;
 
-- 
2.13.6

^ permalink raw reply related

* Re: [PATCH] option: Do not try to bind to ADB interfaces
From: Romain Izard @ 2018-07-23 16:45 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Johan Hovold, linux-usb, LKML, stable
In-Reply-To: <20180723140801.GA4835@kroah.com>

2018-07-23 16:08 GMT+02:00 Greg Kroah-Hartman <gregkh@linuxfoundation.org>:
> On Mon, Jul 23, 2018 at 04:02:20PM +0200, Romain Izard wrote:
>> Some modems now use the Android Debug Bridge to provide a debugging
>> interface, and some phones can also export serial ports managed by the
>> "option" driver.
>>
>> The ADB daemon running in userspace tries to use USB interfaces with
>> bDeviceClass=0xFF, bDeviceSubClass=0x42, bDeviceProtocol=1
>>
>> Prevent the option driver from binding to those interfaces, as they
>> will not be serial ports.
>>
>> This can fix issues like:
>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781256
>>
>> Signed-off-by: Romain Izard <romain.izard.pro@gmail.com>
>> Cc: stable <stable@vger.kernel.org>
>> ---
>>  drivers/usb/serial/option.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
>> index 664e61f16b6a..f98943a57ff0 100644
>> --- a/drivers/usb/serial/option.c
>> +++ b/drivers/usb/serial/option.c
>> @@ -1987,6 +1987,12 @@ static int option_probe(struct usb_serial *serial,
>>       if (iface_desc->bInterfaceClass == USB_CLASS_MASS_STORAGE)
>>               return -ENODEV;
>>
>> +     /* Do not bind Android Debug Bridge interfaces */
>> +     if (iface_desc->bInterfaceClass == USB_CLASS_VENDOR_SPEC &&
>> +             iface_desc->bInterfaceSubClass == 0x42 &&
>> +             iface_desc->bInterfaceProtocol == 1)
>> +             return -ENODEV;
>
> Shouldn't you also check the vendor/product id as well?  Otherwise this
> has the potential to match random devices that are not really adb
> devices.

The only random devices are those that already match with the option driver,
either with the whole device or the whole reserved class. It reduces the
amount of potentially affected devices.

Among those, I do not expect any of them to use 0xff,0x42,0x01 for a
serial port. But if it occurred, it would be necessary to revert this change as
no userspace hack would allow to rebind the interface.

As this is only an intuition, please discard this patch if you have any doubt
about this.

Best regards,
-- 
Romain Izard

^ permalink raw reply

* [Qemu-devel] [PULL 5/7] iotest: Fix filtering order in 226
From: Kevin Wolf @ 2018-07-23 16:45 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, qemu-devel, peter.maydell
In-Reply-To: <20180723164530.26599-1-kwolf@redhat.com>

From: Max Reitz <mreitz@redhat.com>

The test directory should be filtered before the image format, otherwise
the test will fail if the image format is part of the test directory,
like so:

[...]
-can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory
+can't open: Could not open '/tmp/test-IMGFMT/t.IMGFMT': Is a directory
[...]

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/qemu-iotests/226 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/qemu-iotests/226 b/tests/qemu-iotests/226
index 34987d43f9..211ea9888a 100755
--- a/tests/qemu-iotests/226
+++ b/tests/qemu-iotests/226
@@ -55,10 +55,10 @@ for PROTO in "file" "host_device" "host_cdrom"; do
     echo "=== Testing with driver:$PROTO ==="
     echo
     echo "== Testing RO =="
-    $QEMU_IO -c "open -r -o driver=$PROTO,filename=$TEST_IMG" 2>&1 | _filter_imgfmt | _filter_testdir
+    $QEMU_IO -c "open -r -o driver=$PROTO,filename=$TEST_IMG" 2>&1 | _filter_testdir | _filter_imgfmt
     $QEMU_IO -c "open -r -o driver=$PROTO,filename=/dev/null" 2>&1 | _filter_imgfmt
     echo "== Testing RW =="
-    $QEMU_IO -c "open -o driver=$PROTO,filename=$TEST_IMG" 2>&1 | _filter_imgfmt | _filter_testdir
+    $QEMU_IO -c "open -o driver=$PROTO,filename=$TEST_IMG" 2>&1 | _filter_testdir | _filter_imgfmt
     $QEMU_IO -c "open -o driver=$PROTO,filename=/dev/null" 2>&1 | _filter_imgfmt
 done
 
-- 
2.13.6

^ permalink raw reply related

* [Qemu-devel] [PULL 4/7] iotests: remove LUKS support from test 226
From: Kevin Wolf @ 2018-07-23 16:45 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, qemu-devel, peter.maydell
In-Reply-To: <20180723164530.26599-1-kwolf@redhat.com>

From: John Snow <jsnow@redhat.com>

This test doesn't actually care about the format anyway, it just
supports "all formats" as a convenience. LUKS however does not use a
simple image filename which confuses this iotest.

We can simply skip the test for formats that use IMGOPTSSYNTAX for
their filenames without missing much coverage.

Signed-off-by: John Snow <jsnow@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/qemu-iotests/226 | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/qemu-iotests/226 b/tests/qemu-iotests/226
index 460aea2fc9..34987d43f9 100755
--- a/tests/qemu-iotests/226
+++ b/tests/qemu-iotests/226
@@ -41,6 +41,9 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
 
 # Generic format, but tests file-protocol specific error handling
 _supported_fmt generic
+if [ "$IMGOPTSSYNTAX" = "true" ]; then
+    _unsupported_fmt $IMGFMT
+fi
 _supported_proto file
 _supported_os Linux
 
-- 
2.13.6

^ permalink raw reply related


This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.