Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

Build bugfixes.

# gpg: Signature made Tue 29 Mar 2022 14:59:03 BST
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* tag 'for-upstream' of https://gitlab.com/bonzini/qemu:
  tests/tcg: really fix path to target configuration
  virtio: fix --enable-vhost-user build on non-Linux

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
diff --git a/.gitattributes b/.gitattributes
index 07f430e..a217cb7 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,4 @@
 *.c.inc         diff=c
 *.h.inc         diff=c
+*.m             diff=objc
 *.py            diff=python
diff --git a/block/stream.c b/block/stream.c
index 3acb59f..694709b 100644
--- a/block/stream.c
+++ b/block/stream.c
@@ -64,7 +64,13 @@
     bdrv_cor_filter_drop(s->cor_filter_bs);
     s->cor_filter_bs = NULL;
 
+    bdrv_subtree_drained_begin(s->above_base);
+
     base = bdrv_filter_or_cow_bs(s->above_base);
+    if (base) {
+        bdrv_ref(base);
+    }
+
     unfiltered_base = bdrv_skip_filters(base);
 
     if (bdrv_cow_child(unfiltered_bs)) {
@@ -75,14 +81,21 @@
                 base_fmt = unfiltered_base->drv->format_name;
             }
         }
+
         bdrv_set_backing_hd(unfiltered_bs, base, &local_err);
         ret = bdrv_change_backing_file(unfiltered_bs, base_id, base_fmt, false);
         if (local_err) {
             error_report_err(local_err);
-            return -EPERM;
+            ret = -EPERM;
+            goto out;
         }
     }
 
+out:
+    if (base) {
+        bdrv_unref(base);
+    }
+    bdrv_subtree_drained_end(s->above_base);
     return ret;
 }
 
diff --git a/hw/intc/arm_gicv3_its.c b/hw/intc/arm_gicv3_its.c
index b96b874..8746673 100644
--- a/hw/intc/arm_gicv3_its.c
+++ b/hw/intc/arm_gicv3_its.c
@@ -524,12 +524,12 @@
     trace_gicv3_its_cmd_mapc(icid, cte.rdbase, cte.valid);
 
     if (icid >= s->ct.num_entries) {
-        qemu_log_mask(LOG_GUEST_ERROR, "ITS MAPC: invalid ICID 0x%d", icid);
+        qemu_log_mask(LOG_GUEST_ERROR, "ITS MAPC: invalid ICID 0x%x\n", icid);
         return CMD_CONTINUE;
     }
     if (cte.valid && cte.rdbase >= s->gicv3->num_cpu) {
         qemu_log_mask(LOG_GUEST_ERROR,
-                      "ITS MAPC: invalid RDBASE %u ", cte.rdbase);
+                      "ITS MAPC: invalid RDBASE %u\n", cte.rdbase);
         return CMD_CONTINUE;
     }
 
diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h
index 7a4d6a0..d3750c8 100644
--- a/include/qemu/main-loop.h
+++ b/include/qemu/main-loop.h
@@ -270,10 +270,24 @@
 bool qemu_in_main_thread(void);
 
 /* Mark and check that the function is part of the global state API. */
+#ifdef CONFIG_COCOA
+/*
+ * When using the Cocoa UI, addRemovableDevicesMenuItems() is called from
+ * a thread different from the QEMU main thread and can not take the BQL,
+ * triggering this assertions in the block layer (commit 0439c5a462).
+ * As the Cocoa fix is not trivial, disable this assertion for the v7.0.0
+ * release (when using Cocoa); we will restore it immediately after the
+ * release.
+ * This issue is tracked as https://gitlab.com/qemu-project/qemu/-/issues/926
+ */
+#define GLOBAL_STATE_CODE()
+#else
 #define GLOBAL_STATE_CODE()                                         \
     do {                                                            \
-        assert(qemu_in_main_thread());                              \
+        /* FIXME: Re-enable after 7.0 release */                    \
+        /* assert(qemu_in_main_thread()); */                        \
     } while (0)
+#endif /* CONFIG_COCOA */
 
 /* Mark and check that the function is part of the I/O API. */
 #define IO_CODE()                                                   \
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index e9bfeb9..9cb723f 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -60,28 +60,28 @@
 
 # FIXME: We could use the other endianness on a MIPS host.
 
-mips_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
-mips_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
+mips_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
+mips_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20'
 mips_family=mips
 
-mipsel_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
-mipsel_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
+mipsel_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
+mipsel_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00'
 mipsel_family=mips
 
-mipsn32_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
-mipsn32_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
+mipsn32_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20'
+mipsn32_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20'
 mipsn32_family=mips
 
-mipsn32el_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
-mipsn32el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
+mipsn32el_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00'
+mipsn32el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00'
 mipsn32el_family=mips
 
 mips64_magic='\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
-mips64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
+mips64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
 mips64_family=mips
 
 mips64el_magic='\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
-mips64el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
+mips64el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
 mips64el_family=mips
 
 sh4_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00'
diff --git a/softmmu/memory.c b/softmmu/memory.c
index 8060c6d..bfa5d51 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -2626,8 +2626,7 @@
         memory_region_transaction_begin();
         memory_region_ref(mr);
         memory_region_del_subregion(container, mr);
-        mr->container = container;
-        memory_region_update_container_subregions(mr);
+        memory_region_add_subregion_common(container, mr->addr, mr);
         memory_region_unref(mr);
         memory_region_transaction_commit();
     }
diff --git a/target/arm/sve_helper.c b/target/arm/sve_helper.c
index 07be55b..d45d088 100644
--- a/target/arm/sve_helper.c
+++ b/target/arm/sve_helper.c
@@ -6734,7 +6734,11 @@
                     if (mtedesc && arm_tlb_mte_tagged(&info.attrs)) {
                         mte_check(env, mtedesc, addr, retaddr);
                     }
-                    host_fn(&scratch, reg_off, info.host);
+                    if (unlikely(info.flags & TLB_MMIO)) {
+                        tlb_fn(env, &scratch, reg_off, addr, retaddr);
+                    } else {
+                        host_fn(&scratch, reg_off, info.host);
+                    }
                 } else {
                     /* Element crosses the page boundary. */
                     sve_probe_page(&info2, false, env, addr + in_page, 0,
@@ -7112,7 +7116,9 @@
                 if (likely(in_page >= msize)) {
                     sve_probe_page(&info, false, env, addr, 0, MMU_DATA_STORE,
                                    mmu_idx, retaddr);
-                    host[i] = info.host;
+                    if (!(info.flags & TLB_MMIO)) {
+                        host[i] = info.host;
+                    }
                 } else {
                     /*
                      * Element crosses the page boundary.
diff --git a/target/mips/cpu-param.h b/target/mips/cpu-param.h
index 9c4a6ea..1aebd01 100644
--- a/target/mips/cpu-param.h
+++ b/target/mips/cpu-param.h
@@ -12,7 +12,7 @@
 #else
 # define TARGET_LONG_BITS 32
 #endif
-#ifdef TARGET_MIPS64
+#ifdef TARGET_ABI_MIPSN64
 #define TARGET_PHYS_ADDR_SPACE_BITS 48
 #define TARGET_VIRT_ADDR_SPACE_BITS 48
 #else
diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx-impl.c.inc
index e67fbf2..d1f6333 100644
--- a/target/ppc/translate/vsx-impl.c.inc
+++ b/target/ppc/translate/vsx-impl.c.inc
@@ -1324,31 +1324,31 @@
 #define GEN_VSX_HELPER_VSX_MADD(name, op1, aop, mop, inval, type)             \
 static void gen_##name(DisasContext *ctx)                                     \
 {                                                                             \
-    TCGv_ptr xt, xa, b, c;                                                    \
+    TCGv_ptr xt, s1, s2, s3;                                                  \
     if (unlikely(!ctx->vsx_enabled)) {                                        \
         gen_exception(ctx, POWERPC_EXCP_VSXU);                                \
         return;                                                               \
     }                                                                         \
     xt = gen_vsr_ptr(xT(ctx->opcode));                                        \
-    xa = gen_vsr_ptr(xA(ctx->opcode));                                        \
+    s1 = gen_vsr_ptr(xA(ctx->opcode));                                        \
     if (ctx->opcode & PPC_BIT32(25)) {                                        \
         /*                                                                    \
          * AxT + B                                                            \
          */                                                                   \
-        b = gen_vsr_ptr(xT(ctx->opcode));                                     \
-        c = gen_vsr_ptr(xB(ctx->opcode));                                     \
+        s2 = gen_vsr_ptr(xB(ctx->opcode));                                    \
+        s3 = gen_vsr_ptr(xT(ctx->opcode));                                    \
     } else {                                                                  \
         /*                                                                    \
          * AxB + T                                                            \
          */                                                                   \
-        b = gen_vsr_ptr(xB(ctx->opcode));                                     \
-        c = gen_vsr_ptr(xT(ctx->opcode));                                     \
+        s2 = gen_vsr_ptr(xT(ctx->opcode));                                    \
+        s3 = gen_vsr_ptr(xB(ctx->opcode));                                    \
     }                                                                         \
-    gen_helper_##name(cpu_env, xt, xa, b, c);                                 \
+    gen_helper_##name(cpu_env, xt, s1, s2, s3);                               \
     tcg_temp_free_ptr(xt);                                                    \
-    tcg_temp_free_ptr(xa);                                                    \
-    tcg_temp_free_ptr(b);                                                     \
-    tcg_temp_free_ptr(c);                                                     \
+    tcg_temp_free_ptr(s1);                                                    \
+    tcg_temp_free_ptr(s2);                                                    \
+    tcg_temp_free_ptr(s3);                                                    \
 }
 
 GEN_VSX_HELPER_VSX_MADD(xvmadddp, 0x04, 0x0C, 0x0D, 0, PPC2_VSX)
diff --git a/tests/qemu-iotests/025 b/tests/qemu-iotests/025
index 80686a3..5771ea9 100755
--- a/tests/qemu-iotests/025
+++ b/tests/qemu-iotests/025
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=stefanha@linux.vnet.ibm.com
+owner=stefanha@redhat.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/027 b/tests/qemu-iotests/027
index b279c88..24c9362 100755
--- a/tests/qemu-iotests/027
+++ b/tests/qemu-iotests/027
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=stefanha@linux.vnet.ibm.com
+owner=stefanha@redhat.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/028 b/tests/qemu-iotests/028
index 8c391f2..2b232c4 100755
--- a/tests/qemu-iotests/028
+++ b/tests/qemu-iotests/028
@@ -23,7 +23,7 @@
 #
 
 # creator
-owner=stefanha@linux.vnet.ibm.com
+owner=stefanha@redhat.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
index 567bf1d..18eddcc 100755
--- a/tests/qemu-iotests/030
+++ b/tests/qemu-iotests/030
@@ -436,6 +436,11 @@
         self.vm.run_job(job='node4', auto_dismiss=True)
         self.assert_no_active_block_jobs()
 
+        # Assert that node0 is now the backing node of node4
+        result = self.vm.qmp('query-named-block-nodes')
+        node4 = next(node for node in result['return'] if node['node-name'] == 'node4')
+        self.assertEqual(node4['image']['backing-image']['filename'], self.imgs[0])
+
     # Test a block-stream and a block-commit job in parallel
     # Here the stream job is supposed to finish quickly in order to reproduce
     # the scenario that triggers the bug fixed in 3d5d319e1221 and 1a63a907507
@@ -719,7 +724,8 @@
                     if result == {'return': []}:
                         # Job finished too quickly
                         continue
-                    self.assert_qmp(result, 'return[0]/paused', False)
+                    self.assertIn(result['return'][0]['status'],
+                                  ['running', 'pending', 'aborting', 'concluded'])
                 elif event['event'] == 'BLOCK_JOB_COMPLETED':
                     self.assertTrue(error, 'job completed unexpectedly')
                     self.assert_qmp(event, 'data/type', 'stream')
@@ -749,8 +755,14 @@
                     self.assert_qmp(event, 'data/device', 'drive0')
                     self.assert_qmp(event, 'data/operation', 'read')
 
+                    if self.vm.qmp('query-block-jobs')['return'][0]['status'] != 'paused':
+                        self.vm.events_wait([(
+                            'JOB_STATUS_CHANGE',
+                            {'data': {'id': 'drive0', 'status': 'paused'}}
+                        )])
+
                     result = self.vm.qmp('query-block-jobs')
-                    self.assert_qmp(result, 'return[0]/paused', True)
+                    self.assert_qmp(result, 'return[0]/status', 'paused')
                     self.assert_qmp(result, 'return[0]/offset', self.STREAM_BUFFER_SIZE)
                     self.assert_qmp(result, 'return[0]/io-status', 'failed')
 
@@ -761,7 +773,8 @@
                     if result == {'return': []}:
                         # Race; likely already finished. Check.
                         continue
-                    self.assert_qmp(result, 'return[0]/paused', False)
+                    self.assertIn(result['return'][0]['status'],
+                                  ['running', 'pending', 'aborting', 'concluded'])
                     self.assert_qmp(result, 'return[0]/io-status', 'ok')
                 elif event['event'] == 'BLOCK_JOB_COMPLETED':
                     self.assertTrue(error, 'job completed unexpectedly')
@@ -838,8 +851,14 @@
                     self.assert_qmp(event, 'data/operation', 'read')
                     error = True
 
+                    if self.vm.qmp('query-block-jobs')['return'][0]['status'] != 'paused':
+                        self.vm.events_wait([(
+                            'JOB_STATUS_CHANGE',
+                            {'data': {'id': 'drive0', 'status': 'paused'}}
+                        )])
+
                     result = self.vm.qmp('query-block-jobs')
-                    self.assert_qmp(result, 'return[0]/paused', True)
+                    self.assert_qmp(result, 'return[0]/status', 'paused')
                     self.assert_qmp(result, 'return[0]/offset', self.STREAM_BUFFER_SIZE)
                     self.assert_qmp(result, 'return[0]/io-status', 'nospace')
 
@@ -850,7 +869,8 @@
                     if result == {'return': []}:
                         # Race; likely already finished. Check.
                         continue
-                    self.assert_qmp(result, 'return[0]/paused', False)
+                    self.assertIn(result['return'][0]['status'],
+                                  ['running', 'pending', 'aborting', 'concluded'])
                     self.assert_qmp(result, 'return[0]/io-status', 'ok')
                 elif event['event'] == 'BLOCK_JOB_COMPLETED':
                     self.assertTrue(error, 'job completed unexpectedly')
diff --git a/tests/qemu-iotests/036 b/tests/qemu-iotests/036
index f703605..16a4019 100755
--- a/tests/qemu-iotests/036
+++ b/tests/qemu-iotests/036
@@ -23,7 +23,7 @@
 #
 
 # creator
-owner=stefanha@linux.vnet.ibm.com
+owner=stefanha@redhat.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039
index 00d379c..e43e702 100755
--- a/tests/qemu-iotests/039
+++ b/tests/qemu-iotests/039
@@ -23,7 +23,7 @@
 #
 
 # creator
-owner=stefanha@linux.vnet.ibm.com
+owner=stefanha@redhat.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041
index 3e16ace..8429958 100755
--- a/tests/qemu-iotests/041
+++ b/tests/qemu-iotests/041
@@ -529,7 +529,7 @@
         self.assert_qmp(event, 'data/device', 'drive0')
         self.assert_qmp(event, 'data/operation', 'read')
         result = self.vm.qmp('query-block-jobs')
-        self.assert_qmp(result, 'return[0]/paused', False)
+        self.assertIn(result['return'][0]['status'], ['running', 'ready'])
         self.complete_and_wait()
 
     def test_large_cluster(self):
@@ -555,7 +555,7 @@
         self.assert_qmp(event, 'data/device', 'drive0')
         self.assert_qmp(event, 'data/operation', 'read')
         result = self.vm.qmp('query-block-jobs')
-        self.assert_qmp(result, 'return[0]/paused', False)
+        self.assertIn(result['return'][0]['status'], ['running', 'ready'])
         self.complete_and_wait()
         self.vm.shutdown()
 
@@ -580,8 +580,14 @@
                     self.assert_qmp(event, 'data/device', 'drive0')
                     self.assert_qmp(event, 'data/operation', 'read')
 
+                    if self.vm.qmp('query-block-jobs')['return'][0]['status'] != 'paused':
+                        self.vm.events_wait([(
+                            'JOB_STATUS_CHANGE',
+                            {'data': {'id': 'drive0', 'status': 'paused'}}
+                        )])
+
                     result = self.vm.qmp('query-block-jobs')
-                    self.assert_qmp(result, 'return[0]/paused', True)
+                    self.assert_qmp(result, 'return[0]/status', 'paused')
                     self.assert_qmp(result, 'return[0]/io-status', 'failed')
 
                     result = self.vm.qmp('block-job-resume', device='drive0')
@@ -593,7 +599,7 @@
                     ready = True
 
         result = self.vm.qmp('query-block-jobs')
-        self.assert_qmp(result, 'return[0]/paused', False)
+        self.assert_qmp(result, 'return[0]/status', 'ready')
         self.assert_qmp(result, 'return[0]/io-status', 'ok')
 
         self.complete_and_wait(wait_ready=False)
@@ -686,7 +692,7 @@
         self.assert_qmp(event, 'data/device', 'drive0')
         self.assert_qmp(event, 'data/operation', 'write')
         result = self.vm.qmp('query-block-jobs')
-        self.assert_qmp(result, 'return[0]/paused', False)
+        self.assertIn(result['return'][0]['status'], ['running', 'ready'])
         self.complete_and_wait()
 
     def test_stop_write(self):
@@ -705,15 +711,21 @@
                     self.assert_qmp(event, 'data/device', 'drive0')
                     self.assert_qmp(event, 'data/operation', 'write')
 
+                    if self.vm.qmp('query-block-jobs')['return'][0]['status'] != 'paused':
+                        self.vm.events_wait([(
+                            'JOB_STATUS_CHANGE',
+                            {'data': {'id': 'drive0', 'status': 'paused'}}
+                        )])
+
                     result = self.vm.qmp('query-block-jobs')
-                    self.assert_qmp(result, 'return[0]/paused', True)
+                    self.assert_qmp(result, 'return[0]/status', 'paused')
                     self.assert_qmp(result, 'return[0]/io-status', 'failed')
 
                     result = self.vm.qmp('block-job-resume', device='drive0')
                     self.assert_qmp(result, 'return', {})
 
                     result = self.vm.qmp('query-block-jobs')
-                    self.assert_qmp(result, 'return[0]/paused', False)
+                    self.assertIn(result['return'][0]['status'], ['running', 'ready'])
                     self.assert_qmp(result, 'return[0]/io-status', 'ok')
                     error = True
                 elif event['event'] == 'BLOCK_JOB_READY':
diff --git a/tests/qemu-iotests/059 b/tests/qemu-iotests/059
index 65c0c32..e8be217 100755
--- a/tests/qemu-iotests/059
+++ b/tests/qemu-iotests/059
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=famz@redhat.com
+owner=fam@euphon.net
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/060 b/tests/qemu-iotests/060
index df87d60..5cd21a6 100755
--- a/tests/qemu-iotests/060
+++ b/tests/qemu-iotests/060
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/061 b/tests/qemu-iotests/061
index 513fbec..509ad24 100755
--- a/tests/qemu-iotests/061
+++ b/tests/qemu-iotests/061
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/062 b/tests/qemu-iotests/062
index 3212522..6a71bf1 100755
--- a/tests/qemu-iotests/062
+++ b/tests/qemu-iotests/062
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/064 b/tests/qemu-iotests/064
index 71fc575..21e25cf 100755
--- a/tests/qemu-iotests/064
+++ b/tests/qemu-iotests/064
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/066 b/tests/qemu-iotests/066
index a780ed7..cf63144 100755
--- a/tests/qemu-iotests/066
+++ b/tests/qemu-iotests/066
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/068 b/tests/qemu-iotests/068
index 54e49c8..7ecd247 100755
--- a/tests/qemu-iotests/068
+++ b/tests/qemu-iotests/068
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/069 b/tests/qemu-iotests/069
index 222dcba..6647e11 100755
--- a/tests/qemu-iotests/069
+++ b/tests/qemu-iotests/069
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/070 b/tests/qemu-iotests/070
index b181e00..edb71af 100755
--- a/tests/qemu-iotests/070
+++ b/tests/qemu-iotests/070
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/071 b/tests/qemu-iotests/071
index d99cef5..27bc730 100755
--- a/tests/qemu-iotests/071
+++ b/tests/qemu-iotests/071
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/072 b/tests/qemu-iotests/072
index c492ab8..662ede9 100755
--- a/tests/qemu-iotests/072
+++ b/tests/qemu-iotests/072
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/074 b/tests/qemu-iotests/074
index c32c94b..ee73e63 100755
--- a/tests/qemu-iotests/074
+++ b/tests/qemu-iotests/074
@@ -21,7 +21,7 @@
 ##
 #
 # creator
-owner=famz@redhat.com
+owner=fam@euphon.net
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/084 b/tests/qemu-iotests/084
index e51e91a..1181cb7 100755
--- a/tests/qemu-iotests/084
+++ b/tests/qemu-iotests/084
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/085 b/tests/qemu-iotests/085
index de74262..3fb7b0b 100755
--- a/tests/qemu-iotests/085
+++ b/tests/qemu-iotests/085
@@ -25,7 +25,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/089 b/tests/qemu-iotests/089
index 48bdc42..c68c5a6 100755
--- a/tests/qemu-iotests/089
+++ b/tests/qemu-iotests/089
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/090 b/tests/qemu-iotests/090
index 2044c09..8f88eea 100755
--- a/tests/qemu-iotests/090
+++ b/tests/qemu-iotests/090
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/091 b/tests/qemu-iotests/091
index 9d144b9..e396748 100755
--- a/tests/qemu-iotests/091
+++ b/tests/qemu-iotests/091
@@ -22,7 +22,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/094 b/tests/qemu-iotests/094
index a295fb2..4766e9a 100755
--- a/tests/qemu-iotests/094
+++ b/tests/qemu-iotests/094
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/095 b/tests/qemu-iotests/095
index 20b5f9b..d1d347e 100755
--- a/tests/qemu-iotests/095
+++ b/tests/qemu-iotests/095
@@ -23,7 +23,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/097 b/tests/qemu-iotests/097
index 30313f8..93857f4 100755
--- a/tests/qemu-iotests/097
+++ b/tests/qemu-iotests/097
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/098 b/tests/qemu-iotests/098
index 4c37eb0..e3eadb3 100755
--- a/tests/qemu-iotests/098
+++ b/tests/qemu-iotests/098
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/099 b/tests/qemu-iotests/099
index 2f1199c..a5d2d30 100755
--- a/tests/qemu-iotests/099
+++ b/tests/qemu-iotests/099
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/102 b/tests/qemu-iotests/102
index 8b4c4c9..141bfe1 100755
--- a/tests/qemu-iotests/102
+++ b/tests/qemu-iotests/102
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/103 b/tests/qemu-iotests/103
index 726f831..bb9fd6f 100755
--- a/tests/qemu-iotests/103
+++ b/tests/qemu-iotests/103
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/105 b/tests/qemu-iotests/105
index d804685..b8f2029 100755
--- a/tests/qemu-iotests/105
+++ b/tests/qemu-iotests/105
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=famz@redhat.com
+owner=fam@euphon.net
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/106 b/tests/qemu-iotests/106
index 3331445..9d6adb5 100755
--- a/tests/qemu-iotests/106
+++ b/tests/qemu-iotests/106
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/107 b/tests/qemu-iotests/107
index e68f1e0..3fabff2 100755
--- a/tests/qemu-iotests/107
+++ b/tests/qemu-iotests/107
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/108 b/tests/qemu-iotests/108
index 8eaef0b..56339ab 100755
--- a/tests/qemu-iotests/108
+++ b/tests/qemu-iotests/108
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/110 b/tests/qemu-iotests/110
index 1fa36cc..91b15f7 100755
--- a/tests/qemu-iotests/110
+++ b/tests/qemu-iotests/110
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/111 b/tests/qemu-iotests/111
index 3ba25f6..382dbf0 100755
--- a/tests/qemu-iotests/111
+++ b/tests/qemu-iotests/111
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/112 b/tests/qemu-iotests/112
index 5333212..a2ffc96 100755
--- a/tests/qemu-iotests/112
+++ b/tests/qemu-iotests/112
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/113 b/tests/qemu-iotests/113
index ee59b9a..a3ad208 100755
--- a/tests/qemu-iotests/113
+++ b/tests/qemu-iotests/113
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/115 b/tests/qemu-iotests/115
index 26dd37d..7a24070 100755
--- a/tests/qemu-iotests/115
+++ b/tests/qemu-iotests/115
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/117 b/tests/qemu-iotests/117
index 48ebc01..6081473 100755
--- a/tests/qemu-iotests/117
+++ b/tests/qemu-iotests/117
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/119 b/tests/qemu-iotests/119
index 5770b50..6cac879 100755
--- a/tests/qemu-iotests/119
+++ b/tests/qemu-iotests/119
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/120 b/tests/qemu-iotests/120
index 7187731..ac7bd8c 100755
--- a/tests/qemu-iotests/120
+++ b/tests/qemu-iotests/120
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/121 b/tests/qemu-iotests/121
index ba3d8d9..f0dd1d1 100755
--- a/tests/qemu-iotests/121
+++ b/tests/qemu-iotests/121
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/123 b/tests/qemu-iotests/123
index e19111f..4d34a2a 100755
--- a/tests/qemu-iotests/123
+++ b/tests/qemu-iotests/123
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/125 b/tests/qemu-iotests/125
index bd390b3..46279d6 100755
--- a/tests/qemu-iotests/125
+++ b/tests/qemu-iotests/125
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/126 b/tests/qemu-iotests/126
index 92c0547..d8d2d65 100755
--- a/tests/qemu-iotests/126
+++ b/tests/qemu-iotests/126
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/127 b/tests/qemu-iotests/127
index 32edc3b..7cc3ce1 100755
--- a/tests/qemu-iotests/127
+++ b/tests/qemu-iotests/127
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/135 b/tests/qemu-iotests/135
index 299075b..7112571 100755
--- a/tests/qemu-iotests/135
+++ b/tests/qemu-iotests/135
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/138 b/tests/qemu-iotests/138
index 951cfa6..76628ad 100755
--- a/tests/qemu-iotests/138
+++ b/tests/qemu-iotests/138
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/140 b/tests/qemu-iotests/140
index 91e08c3..d923b77 100755
--- a/tests/qemu-iotests/140
+++ b/tests/qemu-iotests/140
@@ -24,7 +24,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/141 b/tests/qemu-iotests/141
index 115cc16..a37030e 100755
--- a/tests/qemu-iotests/141
+++ b/tests/qemu-iotests/141
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/143 b/tests/qemu-iotests/143
index 72151ac..92a081b 100755
--- a/tests/qemu-iotests/143
+++ b/tests/qemu-iotests/143
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/144 b/tests/qemu-iotests/144
index 60e9ddd..bdcc498 100755
--- a/tests/qemu-iotests/144
+++ b/tests/qemu-iotests/144
@@ -22,7 +22,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/146 b/tests/qemu-iotests/146
index 98aca96..661a9d2 100755
--- a/tests/qemu-iotests/146
+++ b/tests/qemu-iotests/146
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/150 b/tests/qemu-iotests/150
index ac6930a..fab0faa 100755
--- a/tests/qemu-iotests/150
+++ b/tests/qemu-iotests/150
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/153 b/tests/qemu-iotests/153
index 607af59..9bc3be8 100755
--- a/tests/qemu-iotests/153
+++ b/tests/qemu-iotests/153
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=famz@redhat.com
+owner=fam@euphon.net
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/156 b/tests/qemu-iotests/156
index 65dcedd..a9540bd 100755
--- a/tests/qemu-iotests/156
+++ b/tests/qemu-iotests/156
@@ -28,7 +28,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/162 b/tests/qemu-iotests/162
index cf17f49..94dae60 100755
--- a/tests/qemu-iotests/162
+++ b/tests/qemu-iotests/162
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/173 b/tests/qemu-iotests/173
index 9594f3c..217e55c 100755
--- a/tests/qemu-iotests/173
+++ b/tests/qemu-iotests/173
@@ -20,7 +20,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/176 b/tests/qemu-iotests/176
index 27ac254..a6a2a4c 100755
--- a/tests/qemu-iotests/176
+++ b/tests/qemu-iotests/176
@@ -25,7 +25,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/182 b/tests/qemu-iotests/182
index fcd1d79..bbd1132 100755
--- a/tests/qemu-iotests/182
+++ b/tests/qemu-iotests/182
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=famz@redhat.com
+owner=fam@euphon.net
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/192 b/tests/qemu-iotests/192
index d809187..e66e1a4 100755
--- a/tests/qemu-iotests/192
+++ b/tests/qemu-iotests/192
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=famz@redhat.com
+owner=fam@euphon.net
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/200 b/tests/qemu-iotests/200
index f80517e..f66c571 100755
--- a/tests/qemu-iotests/200
+++ b/tests/qemu-iotests/200
@@ -22,7 +22,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/216 b/tests/qemu-iotests/216
index 88b385a..c531abf 100755
--- a/tests/qemu-iotests/216
+++ b/tests/qemu-iotests/216
@@ -18,7 +18,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
-# Creator/Owner: Max Reitz <mreitz@redhat.com>
+# Creator/Owner: Hanna Reitz <hreitz@redhat.com>
 
 import iotests
 from iotests import log, qemu_img, qemu_io_silent
diff --git a/tests/qemu-iotests/218 b/tests/qemu-iotests/218
index 853ed52..8345793 100755
--- a/tests/qemu-iotests/218
+++ b/tests/qemu-iotests/218
@@ -25,7 +25,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
-# Creator/Owner: Max Reitz <mreitz@redhat.com>
+# Creator/Owner: Hanna Reitz <hreitz@redhat.com>
 
 import iotests
 from iotests import log, qemu_img, qemu_io_silent
diff --git a/tests/qemu-iotests/224 b/tests/qemu-iotests/224
index c31c55b..4df5157 100755
--- a/tests/qemu-iotests/224
+++ b/tests/qemu-iotests/224
@@ -19,7 +19,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
-# Creator/Owner: Max Reitz <mreitz@redhat.com>
+# Creator/Owner: Hanna Reitz <hreitz@redhat.com>
 
 import iotests
 from iotests import log, qemu_img, qemu_io_silent, filter_qmp_testfiles, \
diff --git a/tests/qemu-iotests/225 b/tests/qemu-iotests/225
index c005379..b5949fc 100755
--- a/tests/qemu-iotests/225
+++ b/tests/qemu-iotests/225
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/228 b/tests/qemu-iotests/228
index f79bae0..7341777 100755
--- a/tests/qemu-iotests/228
+++ b/tests/qemu-iotests/228
@@ -19,7 +19,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
-# Creator/Owner: Max Reitz <mreitz@redhat.com>
+# Creator/Owner: Hanna Reitz <hreitz@redhat.com>
 
 import iotests
 from iotests import log, qemu_img, filter_testfiles, filter_imgfmt, \
diff --git a/tests/qemu-iotests/229 b/tests/qemu-iotests/229
index 4bc9939..aaa6996 100755
--- a/tests/qemu-iotests/229
+++ b/tests/qemu-iotests/229
@@ -21,7 +21,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq="$(basename $0)"
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/231 b/tests/qemu-iotests/231
index 8e6c644..eddc8e9 100755
--- a/tests/qemu-iotests/231
+++ b/tests/qemu-iotests/231
@@ -22,7 +22,7 @@
 #
 
 # creator
-owner=jcody@redhat.com
+owner=codyprime@gmail.com
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/250 b/tests/qemu-iotests/250
index f069ca1..af48f83 100755
--- a/tests/qemu-iotests/250
+++ b/tests/qemu-iotests/250
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=vsementsov@virtuozzo.com
+owner=v.sementsov-og@mail.ru
 
 seq=`basename $0`
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/251 b/tests/qemu-iotests/251
index 8bdec37..794cad5 100755
--- a/tests/qemu-iotests/251
+++ b/tests/qemu-iotests/251
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/252 b/tests/qemu-iotests/252
index 2134b99..522333c 100755
--- a/tests/qemu-iotests/252
+++ b/tests/qemu-iotests/252
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/258 b/tests/qemu-iotests/258
index 7798a04..cfd536d 100755
--- a/tests/qemu-iotests/258
+++ b/tests/qemu-iotests/258
@@ -18,7 +18,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
-# Creator/Owner: Max Reitz <mreitz@redhat.com>
+# Creator/Owner: Hanna Reitz <hreitz@redhat.com>
 
 import iotests
 from iotests import log, qemu_img, qemu_io_silent, \
diff --git a/tests/qemu-iotests/259 b/tests/qemu-iotests/259
index 1b15e8f..82f5de4 100755
--- a/tests/qemu-iotests/259
+++ b/tests/qemu-iotests/259
@@ -20,7 +20,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/261 b/tests/qemu-iotests/261
index d1c8037..b73da56 100755
--- a/tests/qemu-iotests/261
+++ b/tests/qemu-iotests/261
@@ -22,7 +22,7 @@
 #
 
 # creator
-owner=mreitz@redhat.com
+owner=hreitz@redhat.com
 
 seq=$(basename $0)
 echo "QA output created by $seq"
diff --git a/tests/qemu-iotests/310 b/tests/qemu-iotests/310
index e3bfedc..00fc561 100755
--- a/tests/qemu-iotests/310
+++ b/tests/qemu-iotests/310
@@ -31,7 +31,7 @@
 log('=== Copy-on-read across nodes ===')
 log('')
 
-# This test is similar to the 216 one by Max Reitz <mreitz@redhat.com>
+# This test is similar to the 216 one by Hanna Reitz <hreitz@redhat.com>
 # The difference is that this test case involves a bottom node to the
 # COR filter driver.
 
diff --git a/tests/qtest/virtio-net-failover.c b/tests/qtest/virtio-net-failover.c
index 80292ee..78811f1 100644
--- a/tests/qtest/virtio-net-failover.c
+++ b/tests/qtest/virtio-net-failover.c
@@ -1141,6 +1141,11 @@
         ret = migrate_status(qts);
 
         status = qdict_get_str(ret, "status");
+        if (strcmp(status, "completed") == 0) {
+            g_test_skip("Failed to cancel the migration");
+            qobject_unref(ret);
+            goto out;
+        }
         if (strcmp(status, "active") == 0) {
             qobject_unref(ret);
             break;
@@ -1155,8 +1160,12 @@
 
     while (true) {
         ret = migrate_status(qts);
-
         status = qdict_get_str(ret, "status");
+        if (strcmp(status, "completed") == 0) {
+            g_test_skip("Failed to cancel the migration");
+            qobject_unref(ret);
+            goto out;
+        }
         if (strcmp(status, "cancelled") == 0) {
             qobject_unref(ret);
             break;
@@ -1169,6 +1178,7 @@
     check_one_card(qts, true, "standby0", MAC_STANDBY0);
     check_one_card(qts, false, "primary0", MAC_PRIMARY0);
 
+out:
     qos_object_destroy((QOSGraphObject *)vdev);
     machine_stop(qts);
 }
@@ -1251,8 +1261,7 @@
             qobject_unref(ret);
             break;
         }
-        g_assert_cmpstr(status, !=, "failed");
-        g_assert_cmpstr(status, !=, "active");
+        g_assert_cmpstr(status, ==, "cancelling");
         qobject_unref(ret);
     }
 
@@ -1324,11 +1333,11 @@
         ret = migrate_status(qts);
 
         status = qdict_get_str(ret, "status");
+        g_assert_cmpstr(status, !=, "failed");
         if (strcmp(status, "wait-unplug") != 0) {
             qobject_unref(ret);
             break;
         }
-        g_assert_cmpstr(status, !=, "failed");
         qobject_unref(ret);
     }
 
@@ -1340,6 +1349,11 @@
         ret = migrate_status(qts);
 
         status = qdict_get_str(ret, "status");
+        if (strcmp(status, "completed") == 0) {
+            g_test_skip("Failed to cancel the migration");
+            qobject_unref(ret);
+            goto out;
+        }
         if (strcmp(status, "cancelled") == 0) {
             qobject_unref(ret);
             break;
@@ -1352,6 +1366,7 @@
     check_one_card(qts, true, "standby0", MAC_STANDBY0);
     check_one_card(qts, true, "primary0", MAC_PRIMARY0);
 
+out:
     qos_object_destroy((QOSGraphObject *)vdev);
     machine_stop(qts);
 }
@@ -1425,6 +1440,11 @@
         ret = migrate_status(qts);
 
         status = qdict_get_str(ret, "status");
+        if (strcmp(status, "completed") == 0) {
+            g_test_skip("Failed to cancel the migration");
+            qobject_unref(ret);
+            goto out;
+        }
         if (strcmp(status, "cancelled") == 0) {
             qobject_unref(ret);
             break;
@@ -1437,6 +1457,7 @@
     check_one_card(qts, true, "standby0", MAC_STANDBY0);
     check_one_card(qts, true, "primary0", MAC_PRIMARY0);
 
+out:
     qos_object_destroy((QOSGraphObject *)vdev);
     machine_stop(qts);
 }
diff --git a/ui/cocoa.m b/ui/cocoa.m
index cb6e7c4..c4e5468 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -923,7 +923,8 @@
                 /* Don't pass command key changes to guest unless mouse is grabbed */
                 case kVK_Command:
                     if (isMouseGrabbed &&
-                        !!(modifiers & NSEventModifierFlagCommand)) {
+                        !!(modifiers & NSEventModifierFlagCommand) &&
+                        left_command_key_enabled) {
                         if (swap_opt_cmd) {
                             [self toggleKey:Q_KEY_CODE_ALT];
                         } else {
diff --git a/ui/console.c b/ui/console.c
index da434ce..1752f2e 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1886,6 +1886,9 @@
         con->scanout.kind = SCANOUT_NONE;
     }
     QLIST_FOREACH(dcl, &s->listeners, next) {
+        if (con != (dcl->con ? dcl->con : active_console)) {
+            continue;
+        }
         if (dcl->ops->dpy_gl_scanout_disable) {
             dcl->ops->dpy_gl_scanout_disable(dcl);
         }
@@ -1909,6 +1912,9 @@
         x, y, width, height
     };
     QLIST_FOREACH(dcl, &s->listeners, next) {
+        if (con != (dcl->con ? dcl->con : active_console)) {
+            continue;
+        }
         if (dcl->ops->dpy_gl_scanout_texture) {
             dcl->ops->dpy_gl_scanout_texture(dcl, backing_id,
                                              backing_y_0_top,
@@ -1927,6 +1933,9 @@
     con->scanout.kind = SCANOUT_DMABUF;
     con->scanout.dmabuf = dmabuf;
     QLIST_FOREACH(dcl, &s->listeners, next) {
+        if (con != (dcl->con ? dcl->con : active_console)) {
+            continue;
+        }
         if (dcl->ops->dpy_gl_scanout_dmabuf) {
             dcl->ops->dpy_gl_scanout_dmabuf(dcl, dmabuf);
         }
@@ -1940,6 +1949,9 @@
     DisplayChangeListener *dcl;
 
     QLIST_FOREACH(dcl, &s->listeners, next) {
+        if (con != (dcl->con ? dcl->con : active_console)) {
+            continue;
+        }
         if (dcl->ops->dpy_gl_cursor_dmabuf) {
             dcl->ops->dpy_gl_cursor_dmabuf(dcl, dmabuf,
                                            have_hot, hot_x, hot_y);
@@ -1954,6 +1966,9 @@
     DisplayChangeListener *dcl;
 
     QLIST_FOREACH(dcl, &s->listeners, next) {
+        if (con != (dcl->con ? dcl->con : active_console)) {
+            continue;
+        }
         if (dcl->ops->dpy_gl_cursor_position) {
             dcl->ops->dpy_gl_cursor_position(dcl, pos_x, pos_y);
         }
@@ -1967,6 +1982,9 @@
     DisplayChangeListener *dcl;
 
     QLIST_FOREACH(dcl, &s->listeners, next) {
+        if (con != (dcl->con ? dcl->con : active_console)) {
+            continue;
+        }
         if (dcl->ops->dpy_gl_release_dmabuf) {
             dcl->ops->dpy_gl_release_dmabuf(dcl, dmabuf);
         }
@@ -1983,6 +2001,9 @@
 
     graphic_hw_gl_block(con, true);
     QLIST_FOREACH(dcl, &s->listeners, next) {
+        if (con != (dcl->con ? dcl->con : active_console)) {
+            continue;
+        }
         if (dcl->ops->dpy_gl_update) {
             dcl->ops->dpy_gl_update(dcl, x, y, w, h);
         }