qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: qemu-stable@nongnu.org, Peter Xu <peterx@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>
Subject: [Qemu-devel] [PATCH 092/113] intel-iommu: introduce vtd_page_walk_info
Date: Mon, 18 Jun 2018 20:42:58 -0500	[thread overview]
Message-ID: <20180619014319.28272-93-mdroth@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180619014319.28272-1-mdroth@linux.vnet.ibm.com>

From: Peter Xu <peterx@redhat.com>

During the recursive page walking of IOVA page tables, some stack
variables are constant variables and never changed during the whole page
walking procedure.  Isolate them into a struct so that we don't need to
pass those contants down the stack every time and multiple times.

CC: QEMU Stable <qemu-stable@nongnu.org>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit fe215b0cbb8c1f4b4af0a64aa5c02042080dd537)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
 hw/i386/intel_iommu.c | 84 +++++++++++++++++++++++++++++++--------------------
 1 file changed, 52 insertions(+), 32 deletions(-)

diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index 3715fa327b..e059bfd577 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -748,9 +748,27 @@ static int vtd_iova_to_slpte(VTDContextEntry *ce, uint64_t iova, bool is_write,
 
 typedef int (*vtd_page_walk_hook)(IOMMUTLBEntry *entry, void *private);
 
+/**
+ * Constant information used during page walking
+ *
+ * @hook_fn: hook func to be called when detected page
+ * @private: private data to be passed into hook func
+ * @notify_unmap: whether we should notify invalid entries
+ * @aw: maximum address width
+ */
+typedef struct {
+    vtd_page_walk_hook hook_fn;
+    void *private;
+    bool notify_unmap;
+    uint8_t aw;
+} vtd_page_walk_info;
+
 static int vtd_page_walk_one(IOMMUTLBEntry *entry, int level,
-                             vtd_page_walk_hook hook_fn, void *private)
+                             vtd_page_walk_info *info)
 {
+    vtd_page_walk_hook hook_fn = info->hook_fn;
+    void *private = info->private;
+
     assert(hook_fn);
     trace_vtd_page_walk_one(level, entry->iova, entry->translated_addr,
                             entry->addr_mask, entry->perm);
@@ -763,17 +781,13 @@ static int vtd_page_walk_one(IOMMUTLBEntry *entry, int level,
  * @addr: base GPA addr to start the walk
  * @start: IOVA range start address
  * @end: IOVA range end address (start <= addr < end)
- * @hook_fn: hook func to be called when detected page
- * @private: private data to be passed into hook func
  * @read: whether parent level has read permission
  * @write: whether parent level has write permission
- * @notify_unmap: whether we should notify invalid entries
- * @aw: maximum address width
+ * @info: constant information for the page walk
  */
 static int vtd_page_walk_level(dma_addr_t addr, uint64_t start,
-                               uint64_t end, vtd_page_walk_hook hook_fn,
-                               void *private, uint32_t level, bool read,
-                               bool write, bool notify_unmap, uint8_t aw)
+                               uint64_t end, uint32_t level, bool read,
+                               bool write, vtd_page_walk_info *info)
 {
     bool read_cur, write_cur, entry_valid;
     uint32_t offset;
@@ -823,24 +837,24 @@ static int vtd_page_walk_level(dma_addr_t addr, uint64_t start,
 
         if (vtd_is_last_slpte(slpte, level)) {
             /* NOTE: this is only meaningful if entry_valid == true */
-            entry.translated_addr = vtd_get_slpte_addr(slpte, aw);
-            if (!entry_valid && !notify_unmap) {
+            entry.translated_addr = vtd_get_slpte_addr(slpte, info->aw);
+            if (!entry_valid && !info->notify_unmap) {
                 trace_vtd_page_walk_skip_perm(iova, iova_next);
                 goto next;
             }
-            ret = vtd_page_walk_one(&entry, level, hook_fn, private);
+            ret = vtd_page_walk_one(&entry, level, info);
             if (ret < 0) {
                 return ret;
             }
         } else {
             if (!entry_valid) {
-                if (notify_unmap) {
+                if (info->notify_unmap) {
                     /*
                      * The whole entry is invalid; unmap it all.
                      * Translated address is meaningless, zero it.
                      */
                     entry.translated_addr = 0x0;
-                    ret = vtd_page_walk_one(&entry, level, hook_fn, private);
+                    ret = vtd_page_walk_one(&entry, level, info);
                     if (ret < 0) {
                         return ret;
                     }
@@ -849,10 +863,9 @@ static int vtd_page_walk_level(dma_addr_t addr, uint64_t start,
                 }
                 goto next;
             }
-            ret = vtd_page_walk_level(vtd_get_slpte_addr(slpte, aw), iova,
-                                      MIN(iova_next, end), hook_fn, private,
-                                      level - 1, read_cur, write_cur,
-                                      notify_unmap, aw);
+            ret = vtd_page_walk_level(vtd_get_slpte_addr(slpte, info->aw),
+                                      iova, MIN(iova_next, end), level - 1,
+                                      read_cur, write_cur, info);
             if (ret < 0) {
                 return ret;
             }
@@ -871,28 +884,24 @@ next:
  * @ce: context entry to walk upon
  * @start: IOVA address to start the walk
  * @end: IOVA range end address (start <= addr < end)
- * @hook_fn: the hook that to be called for each detected area
- * @private: private data for the hook function
- * @aw: maximum address width
+ * @info: page walking information struct
  */
 static int vtd_page_walk(VTDContextEntry *ce, uint64_t start, uint64_t end,
-                         vtd_page_walk_hook hook_fn, void *private,
-                         bool notify_unmap, uint8_t aw)
+                         vtd_page_walk_info *info)
 {
     dma_addr_t addr = vtd_ce_get_slpt_base(ce);
     uint32_t level = vtd_ce_get_level(ce);
 
-    if (!vtd_iova_range_check(start, ce, aw)) {
+    if (!vtd_iova_range_check(start, ce, info->aw)) {
         return -VTD_FR_ADDR_BEYOND_MGAW;
     }
 
-    if (!vtd_iova_range_check(end, ce, aw)) {
+    if (!vtd_iova_range_check(end, ce, info->aw)) {
         /* Fix end so that it reaches the maximum */
-        end = vtd_iova_limit(ce, aw);
+        end = vtd_iova_limit(ce, info->aw);
     }
 
-    return vtd_page_walk_level(addr, start, end, hook_fn, private,
-                               level, true, true, notify_unmap, aw);
+    return vtd_page_walk_level(addr, start, end, level, true, true, info);
 }
 
 /* Map a device to its corresponding domain (context-entry) */
@@ -1449,14 +1458,19 @@ static void vtd_iotlb_page_invalidate_notify(IntelIOMMUState *s,
                                        vtd_as->devfn, &ce);
         if (!ret && domain_id == VTD_CONTEXT_ENTRY_DID(ce.hi)) {
             if (vtd_as_has_map_notifier(vtd_as)) {
+                vtd_page_walk_info info = {
+                    .hook_fn = vtd_page_invalidate_notify_hook,
+                    .private = (void *)&vtd_as->iommu,
+                    .notify_unmap = true,
+                    .aw = s->aw_bits,
+                };
+
                 /*
                  * As long as we have MAP notifications registered in
                  * any of our IOMMU notifiers, we need to sync the
                  * shadow page table.
                  */
-                vtd_page_walk(&ce, addr, addr + size,
-                              vtd_page_invalidate_notify_hook,
-                              (void *)&vtd_as->iommu, true, s->aw_bits);
+                vtd_page_walk(&ce, addr, addr + size, &info);
             } else {
                 /*
                  * For UNMAP-only notifiers, we don't need to walk the
@@ -2917,8 +2931,14 @@ static void vtd_iommu_replay(IOMMUMemoryRegion *iommu_mr, IOMMUNotifier *n)
                                   ce.hi, ce.lo);
         if (vtd_as_has_map_notifier(vtd_as)) {
             /* This is required only for MAP typed notifiers */
-            vtd_page_walk(&ce, 0, ~0ULL, vtd_replay_hook, (void *)n, false,
-                          s->aw_bits);
+            vtd_page_walk_info info = {
+                .hook_fn = vtd_replay_hook,
+                .private = (void *)n,
+                .notify_unmap = false,
+                .aw = s->aw_bits,
+            };
+
+            vtd_page_walk(&ce, 0, ~0ULL, &info);
         }
     } else {
         trace_vtd_replay_ce_invalid(bus_n, PCI_SLOT(vtd_as->devfn),
-- 
2.11.0

  parent reply	other threads:[~2018-06-19  1:47 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-19  1:41 [Qemu-devel] [PATCH 00/113] Patch Round-up for stable 2.11.2, freeze on 2018-06-22 Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 001/113] block/ssh: fix possible segmentation fault when .desc is not null-terminated Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 002/113] pci-bridge/i82801b11: clear bridge registers on platform reset Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 003/113] virtio-balloon: unref the memory region before continuing Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 004/113] memfd: fix configure test Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 005/113] sdl: workaround bug in sdl 2.0.8 headers Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 006/113] spapr: Allow some cases where we can't set VSMT mode in the kernel Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 007/113] spapr: Adjust default VSMT value for better migration compatibility Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 008/113] spapr: set vsmt to MAX(8, smp_threads) Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 009/113] spapr: use spapr->vsmt to compute VCPU ids Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 010/113] spapr: move VCPU calculation to core machine code Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 011/113] target/ppc: Clarify compat mode max_threads value Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 012/113] spapr: rename spapr_vcpu_id() to spapr_get_vcpu_id() Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 013/113] spapr: consolidate the VCPU id numbering logic in a single place Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 014/113] spapr: fix missing CPU core nodes in DT when running with TCG Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 015/113] spapr: register dummy ICPs later Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 016/113] spapr: make pseries-2.11 the default machine type Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 017/113] nbd: Honor server's advertised minimum block size Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 018/113] specs/qcow2: Fix documentation of the compressed cluster descriptor Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 019/113] rbd: Fix use after free in qemu_rbd_set_keypairs() error path Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 020/113] tpm: Set the flags of the CMD_INIT command to 0 Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 021/113] loader: don't perform overlapping address check for memory region ROM images Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 022/113] target/xtensa: dump correct physical registers Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 023/113] linux-user: fix mmap/munmap/mprotect/mremap/shmat Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 024/113] linux-user: fix assertion in shmdt Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 025/113] linux-user: fix target_mprotect/target_munmap error return values Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 026/113] sparc: fix leon3 casa instruction when MMU is disabled Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 027/113] openpic_kvm: drop address_space_to_flatview call Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 028/113] memory: inline some performance-sensitive accessors Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 029/113] address_space_write: address_space_to_flatview needs RCU lock Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 030/113] address_space_read: " Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 031/113] address_space_access_valid: " Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 032/113] address_space_map: " Michael Roth
2018-06-19  1:41 ` [Qemu-devel] [PATCH 033/113] address_space_rw: " Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 034/113] memory: fix flatview_access_valid RCU read lock/unlock imbalance Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 035/113] migration/block: reset dirty bitmap before read in bulk phase Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 036/113] multiboot: bss_end_addr can be zero Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 037/113] multiboot: Remove unused variables from multiboot.c Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 038/113] multiboot: Use header names when displaying fields Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 039/113] multiboot: fprintf(stderr...) -> error_report() Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 040/113] multiboot: Reject kernels exceeding the address space Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 041/113] multiboot: Check validity of mh_header_addr Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 042/113] tests/multiboot: Test exit code for every qemu run Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 043/113] tests/multiboot: Add tests for the a.out kludge Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 044/113] tests/multiboot: Add .gitignore Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 045/113] arm/translate-a64: treat DISAS_UPDATE as variant of DISAS_EXIT Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 046/113] virtio_net: flush uncompleted TX on reset Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 047/113] qemu-pr-helper: Actually allow users to specify pidfile Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 048/113] block/file-posix: Fix fully preallocated truncate Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 049/113] iotests: Test preallocated truncate of 2G image Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 050/113] tcg: Mark muluh_i64 and mulsh_i64 as 64-bit ops Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 051/113] target/i386: Fix andn instruction Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 052/113] exec: fix memory leak in find_max_supported_pagesize() Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 053/113] gluster: Fix blockdev-add with server.N.type=unix Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 054/113] cpus.c: ensure running CPU recalculates icount deadlines on timer expiry Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 055/113] vfio-ccw: fix memory leaks in vfio_ccw_realize() Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 056/113] hw/block/pflash_cfi: fix off-by-one error Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 057/113] tcg: Introduce tcg_set_insn_start_param Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 058/113] hw/char/cmsdk-apb-uart.c: Correctly clear INTSTATUS bits on writes Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 059/113] device_tree: Increase FDT_MAX_SIZE to 1 MiB Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 060/113] ccid: Fix dwProtocols advertisement of T=0 Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 061/113] nbd/client: Fix error messages during NBD_INFO_BLOCK_SIZE Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 062/113] s390: Do not pass inofficial IPL type to the guest Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 063/113] s390-ccw: force diag 308 subcode to unsigned long Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 064/113] tcg/arm: Fix memory barrier encoding Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 065/113] target/arm: Implement v8M VLLDM and VLSTM Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 066/113] target/ppc: always set PPC_MEM_TLBIE in pre 2.8 migration hack Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 067/113] spapr: don't advertise radix GTSE if max-compat-cpu < power9 Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 068/113] qxl: fix local renderer crash Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 069/113] configure: recognize more rpmbuild macros Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 070/113] qemu-img: Resolve relative backing paths in rebase Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 071/113] iotests: Add test for rebasing with relative paths Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 072/113] qemu-io: Use purely string blockdev options Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 073/113] qemu-img: Use only string options in img_open_opts Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 074/113] iotests: Add test for -U/force-share conflicts Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 075/113] lm32: take BQL before writing IP/IM register Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 076/113] raw: Check byte range uniformly Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 077/113] s390x/css: disabled subchannels cannot be status pending Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 078/113] pc-bios/s390-ccw: struct tpi_info must be declared as aligned(4) Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 079/113] qdev: rename typedef qdev_resetfn() -> DeviceReset() Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 080/113] qdev: add helpers to be more explicit when using abstract QOM parent functions Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 081/113] s390x/virtio: Convert virtio-ccw from *_exit to *_unrealize Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 082/113] virtio-ccw: common reset handler Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 083/113] s390x/ccw: make sure all ccw devices are properly reset Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 084/113] console: Avoid segfault in screendump Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 085/113] hw/intc/arm_gicv3: Fix APxR<n> register dispatching Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 086/113] intel-iommu: Redefine macros to enable supporting 48 bit address width Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 087/113] intel-iommu: Extend address width to 48 bits Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 088/113] intel-iommu: send PSI always even if across PDEs Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 089/113] intel-iommu: remove IntelIOMMUNotifierNode Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 090/113] intel-iommu: add iommu lock Michael Roth
2018-06-19  1:42 ` [Qemu-devel] [PATCH 091/113] intel-iommu: only do page walk for MAP notifiers Michael Roth
2018-06-19  1:42 ` Michael Roth [this message]
2018-06-19  1:42 ` [Qemu-devel] [PATCH 093/113] intel-iommu: pass in address space when page walk Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 094/113] intel-iommu: trace domain id during " Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 095/113] util: implement simple iova tree Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 096/113] intel-iommu: rework the page walk logic Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 097/113] arm_gicv3_kvm: increase clroffset accordingly Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 098/113] Fix libusb-1.0.22 deprecated libusb_set_debug with libusb_set_option Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 099/113] ahci: fix PxCI register race Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 100/113] arm_gicv3_kvm: kvm_dist_get/put: skip the registers banked by GICR Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 101/113] block: Make bdrv_is_writable() public Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 102/113] qcow2: Do not mark inactive images corrupt Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 103/113] iotests: Add case for a corrupted inactive image Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 104/113] throttle: Fix crash on reopen Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 105/113] vga: fix region calculation Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 106/113] i386: define the 'ssbd' CPUID feature bit (CVE-2018-3639) Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 107/113] i386: Define the Virt SSBD MSR and handling of it (CVE-2018-3639) Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 108/113] i386: define the AMD 'virt-ssbd' CPUID feature bit (CVE-2018-3639) Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 109/113] tap: set vhostfd passed from qemu cli to non-blocking Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 110/113] vhost-user: delete net client if necessary Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 111/113] qemu-img: Fix assert when mapping unaligned raw file Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 112/113] iotests: Add test 221 to catch qemu-img map regression Michael Roth
2018-06-19  1:43 ` [Qemu-devel] [PATCH 113/113] arm_gicv3_kvm: kvm_dist_get/put_priority: skip the registers banked by GICR_IPRIORITYR Michael Roth
2018-06-19  7:42 ` [Qemu-devel] [PATCH 00/113] Patch Round-up for stable 2.11.2, freeze on 2018-06-22 Cornelia Huck
2018-06-20 20:41   ` Michael Roth
2018-06-20 21:55     ` Michael Roth
2018-06-21  8:34       ` Cornelia Huck
2018-06-19 11:56 ` [Qemu-devel] [Qemu-stable] " Greg Kurz
2018-06-20 20:29   ` Michael Roth
2018-06-21 12:30     ` Greg Kurz
2018-06-19 18:19 ` [Qemu-devel] " Cole Robinson
2018-06-19 21:57 ` Bruce Rogers
2018-06-20 21:48 ` Michael Roth
2018-06-21 12:15   ` Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180619014319.28272-93-mdroth@linux.vnet.ibm.com \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=mst@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-stable@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).