qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/5] xen-20170202
@ 2017-02-02 18:35 Stefano Stabellini
  2017-02-02 18:35 ` [Qemu-devel] [PULL 1/5] xen-platform: re-structure unplug_disks Stefano Stabellini
  2017-02-03 13:11 ` [Qemu-devel] [PULL 0/5] xen-20170202 Peter Maydell
  0 siblings, 2 replies; 7+ messages in thread
From: Stefano Stabellini @ 2017-02-02 18:35 UTC (permalink / raw)
  To: stefanha; +Cc: sstabellini, stefanha, peter.maydell

The following changes since commit 3aca12f841fcd6f3a7477076dad0d564360500de:

  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20170127' into staging (2017-01-27 16:59:17 +0000)

are available in the git repository at:


  git://xenbits.xen.org/people/sstabellini/qemu-dm.git tags/xen-20170202

for you to fetch changes up to e9dcbc86d614018923e26e31319b0a54c9e5abac:

  xen: use qdev_unplug() instead of g_free() in xen_pv_find_xendev() (2017-02-02 10:23:53 -0800)

----------------------------------------------------------------
Xen 2017/02/02

----------------------------------------------------------------
Anthony PERARD (1):
      MAINTAINERS: Update xen-devel mailing list address

Juergen Gross (1):
      xen: use qdev_unplug() instead of g_free() in xen_pv_find_xendev()

Paul Durrant (3):
      xen-platform: re-structure unplug_disks
      xen-platform: add support for unplugging NVMe disks...
      xen-platform: add missing disk unplug option

 MAINTAINERS                |  2 +-
 hw/i386/xen/xen_platform.c | 51 ++++++++++++++++++++++++++++------------------
 hw/ide/piix.c              |  4 ++--
 hw/xen/xen_backend.c       | 13 ++++++------
 include/hw/ide.h           |  2 +-
 5 files changed, 42 insertions(+), 30 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PULL 1/5] xen-platform: re-structure unplug_disks
  2017-02-02 18:35 [Qemu-devel] [PULL 0/5] xen-20170202 Stefano Stabellini
@ 2017-02-02 18:35 ` Stefano Stabellini
  2017-02-02 18:35   ` [Qemu-devel] [PULL 2/5] xen-platform: add support for unplugging NVMe disks Stefano Stabellini
                     ` (3 more replies)
  2017-02-03 13:11 ` [Qemu-devel] [PULL 0/5] xen-20170202 Peter Maydell
  1 sibling, 4 replies; 7+ messages in thread
From: Stefano Stabellini @ 2017-02-02 18:35 UTC (permalink / raw)
  To: stefanha
  Cc: sstabellini, stefanha, peter.maydell, anthony.perard, xen-devel,
	qemu-devel, Paul Durrant

From: Paul Durrant <paul.durrant@citrix.com>

The current code is poorly structured and potentially leads to multiple
config space reads when one is sufficient. Also the UNPLUG_ALL_IDE_DISKS
flag is mis-named since it also results in SCSI disks being unplugged.

This patch renames the flag and re-structures the code to be more
efficient, and readable.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 hw/i386/xen/xen_platform.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
index 2e1e543..f50915f 100644
--- a/hw/i386/xen/xen_platform.c
+++ b/hw/i386/xen/xen_platform.c
@@ -88,7 +88,7 @@ static void log_writeb(PCIXenPlatformState *s, char val)
 }
 
 /* Xen Platform, Fixed IOPort */
-#define UNPLUG_ALL_IDE_DISKS 1
+#define UNPLUG_ALL_DISKS 1
 #define UNPLUG_ALL_NICS 2
 #define UNPLUG_AUX_IDE_DISKS 4
 
@@ -110,14 +110,21 @@ static void pci_unplug_nics(PCIBus *bus)
 static void unplug_disks(PCIBus *b, PCIDevice *d, void *o)
 {
     /* We have to ignore passthrough devices */
-    if (pci_get_word(d->config + PCI_CLASS_DEVICE) ==
-            PCI_CLASS_STORAGE_IDE
-            && strcmp(d->name, "xen-pci-passthrough") != 0) {
+    if (!strcmp(d->name, "xen-pci-passthrough")) {
+        return;
+    }
+
+    switch (pci_get_word(d->config + PCI_CLASS_DEVICE)) {
+    case PCI_CLASS_STORAGE_IDE:
         pci_piix3_xen_ide_unplug(DEVICE(d));
-    } else if (pci_get_word(d->config + PCI_CLASS_DEVICE) ==
-            PCI_CLASS_STORAGE_SCSI
-            && strcmp(d->name, "xen-pci-passthrough") != 0) {
+        break;
+
+    case PCI_CLASS_STORAGE_SCSI:
         object_unparent(OBJECT(d));
+        break;
+
+    default:
+        break;
     }
 }
 
@@ -134,9 +141,9 @@ static void platform_fixed_ioport_writew(void *opaque, uint32_t addr, uint32_t v
     case 0: {
         PCIDevice *pci_dev = PCI_DEVICE(s);
         /* Unplug devices.  Value is a bitmask of which devices to
-           unplug, with bit 0 the IDE devices, bit 1 the network
+           unplug, with bit 0 the disk devices, bit 1 the network
            devices, and bit 2 the non-primary-master IDE devices. */
-        if (val & UNPLUG_ALL_IDE_DISKS) {
+        if (val & UNPLUG_ALL_DISKS) {
             DPRINTF("unplug disks\n");
             pci_unplug_disks(pci_dev->bus);
         }
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PULL 2/5] xen-platform: add support for unplugging NVMe disks...
  2017-02-02 18:35 ` [Qemu-devel] [PULL 1/5] xen-platform: re-structure unplug_disks Stefano Stabellini
@ 2017-02-02 18:35   ` Stefano Stabellini
  2017-02-02 18:35   ` [Qemu-devel] [PULL 3/5] xen-platform: add missing disk unplug option Stefano Stabellini
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Stefano Stabellini @ 2017-02-02 18:35 UTC (permalink / raw)
  To: stefanha
  Cc: sstabellini, stefanha, peter.maydell, anthony.perard, xen-devel,
	qemu-devel, Paul Durrant

From: Paul Durrant <paul.durrant@citrix.com>

...not just IDE and SCSI.

This patch allows the Xen tool-stack to fully support of NVMe as an
emulated disk type. See [1] for the relevant tool-stack patch discussion.

[1] https://lists.xen.org/archives/html/xen-devel/2017-01/msg01225.html

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 hw/i386/xen/xen_platform.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
index f50915f..7d41ebb 100644
--- a/hw/i386/xen/xen_platform.c
+++ b/hw/i386/xen/xen_platform.c
@@ -120,6 +120,7 @@ static void unplug_disks(PCIBus *b, PCIDevice *d, void *o)
         break;
 
     case PCI_CLASS_STORAGE_SCSI:
+    case PCI_CLASS_STORAGE_EXPRESS:
         object_unparent(OBJECT(d));
         break;
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PULL 3/5] xen-platform: add missing disk unplug option
  2017-02-02 18:35 ` [Qemu-devel] [PULL 1/5] xen-platform: re-structure unplug_disks Stefano Stabellini
  2017-02-02 18:35   ` [Qemu-devel] [PULL 2/5] xen-platform: add support for unplugging NVMe disks Stefano Stabellini
@ 2017-02-02 18:35   ` Stefano Stabellini
  2017-02-02 18:35   ` [Qemu-devel] [PULL 4/5] MAINTAINERS: Update xen-devel mailing list address Stefano Stabellini
  2017-02-02 18:35   ` [Qemu-devel] [PULL 5/5] xen: use qdev_unplug() instead of g_free() in xen_pv_find_xendev() Stefano Stabellini
  3 siblings, 0 replies; 7+ messages in thread
From: Stefano Stabellini @ 2017-02-02 18:35 UTC (permalink / raw)
  To: stefanha
  Cc: sstabellini, stefanha, peter.maydell, anthony.perard, xen-devel,
	qemu-devel, Paul Durrant, Paolo Bonzini, Richard Henderson,
	Eduardo Habkost, Michael S. Tsirkin, John Snow

From: Paul Durrant <paul.durrant@citrix.com>

The Xen HVM unplug protocol [1] specifies a mechanism to allow guests to
request unplug of 'aux' disks (which is stated to mean all IDE disks,
except the primary master). This patch adds support for that unplug request.

NOTE: The semantics of what happens if unplug of all disks and 'aux' disks
      is simultaneously requests is not clear. The patch makes that
      assumption that an 'all' request overrides an 'aux' request.

[1] http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=docs/misc/hvm-emulated-unplug.markdown

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
----
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: John Snow <jsnow@redhat.com>
---
 hw/i386/xen/xen_platform.c | 27 +++++++++++++++------------
 hw/ide/piix.c              |  4 ++--
 include/hw/ide.h           |  2 +-
 3 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c
index 7d41ebb..6010f35 100644
--- a/hw/i386/xen/xen_platform.c
+++ b/hw/i386/xen/xen_platform.c
@@ -107,8 +107,12 @@ static void pci_unplug_nics(PCIBus *bus)
     pci_for_each_device(bus, 0, unplug_nic, NULL);
 }
 
-static void unplug_disks(PCIBus *b, PCIDevice *d, void *o)
+static void unplug_disks(PCIBus *b, PCIDevice *d, void *opaque)
 {
+    uint32_t flags = *(uint32_t *)opaque;
+    bool aux = (flags & UNPLUG_AUX_IDE_DISKS) &&
+        !(flags & UNPLUG_ALL_DISKS);
+
     /* We have to ignore passthrough devices */
     if (!strcmp(d->name, "xen-pci-passthrough")) {
         return;
@@ -116,12 +120,14 @@ static void unplug_disks(PCIBus *b, PCIDevice *d, void *o)
 
     switch (pci_get_word(d->config + PCI_CLASS_DEVICE)) {
     case PCI_CLASS_STORAGE_IDE:
-        pci_piix3_xen_ide_unplug(DEVICE(d));
+        pci_piix3_xen_ide_unplug(DEVICE(d), aux);
         break;
 
     case PCI_CLASS_STORAGE_SCSI:
     case PCI_CLASS_STORAGE_EXPRESS:
-        object_unparent(OBJECT(d));
+        if (!aux) {
+            object_unparent(OBJECT(d));
+        }
         break;
 
     default:
@@ -129,9 +135,9 @@ static void unplug_disks(PCIBus *b, PCIDevice *d, void *o)
     }
 }
 
-static void pci_unplug_disks(PCIBus *bus)
+static void pci_unplug_disks(PCIBus *bus, uint32_t flags)
 {
-    pci_for_each_device(bus, 0, unplug_disks, NULL);
+    pci_for_each_device(bus, 0, unplug_disks, &flags);
 }
 
 static void platform_fixed_ioport_writew(void *opaque, uint32_t addr, uint32_t val)
@@ -144,17 +150,14 @@ static void platform_fixed_ioport_writew(void *opaque, uint32_t addr, uint32_t v
         /* Unplug devices.  Value is a bitmask of which devices to
            unplug, with bit 0 the disk devices, bit 1 the network
            devices, and bit 2 the non-primary-master IDE devices. */
-        if (val & UNPLUG_ALL_DISKS) {
+        if (val & (UNPLUG_ALL_DISKS | UNPLUG_AUX_IDE_DISKS)) {
             DPRINTF("unplug disks\n");
-            pci_unplug_disks(pci_dev->bus);
+            pci_unplug_disks(pci_dev->bus, val);
         }
         if (val & UNPLUG_ALL_NICS) {
             DPRINTF("unplug nics\n");
             pci_unplug_nics(pci_dev->bus);
         }
-        if (val & UNPLUG_AUX_IDE_DISKS) {
-            DPRINTF("unplug auxiliary disks not supported\n");
-        }
         break;
     }
     case 2:
@@ -335,14 +338,14 @@ static void xen_platform_ioport_writeb(void *opaque, hwaddr addr,
              * If VMDP was to control both disk and LAN it would use 4.
              * If it controlled just disk or just LAN, it would use 8 below.
              */
-            pci_unplug_disks(pci_dev->bus);
+            pci_unplug_disks(pci_dev->bus, UNPLUG_ALL_DISKS);
             pci_unplug_nics(pci_dev->bus);
         }
         break;
     case 8:
         switch (val) {
         case 1:
-            pci_unplug_disks(pci_dev->bus);
+            pci_unplug_disks(pci_dev->bus, UNPLUG_ALL_DISKS);
             break;
         case 2:
             pci_unplug_nics(pci_dev->bus);
diff --git a/hw/ide/piix.c b/hw/ide/piix.c
index d5777fd..7e2d767 100644
--- a/hw/ide/piix.c
+++ b/hw/ide/piix.c
@@ -165,7 +165,7 @@ static void pci_piix_ide_realize(PCIDevice *dev, Error **errp)
     pci_piix_init_ports(d);
 }
 
-int pci_piix3_xen_ide_unplug(DeviceState *dev)
+int pci_piix3_xen_ide_unplug(DeviceState *dev, bool aux)
 {
     PCIIDEState *pci_ide;
     DriveInfo *di;
@@ -174,7 +174,7 @@ int pci_piix3_xen_ide_unplug(DeviceState *dev)
 
     pci_ide = PCI_IDE(dev);
 
-    for (i = 0; i < 4; i++) {
+    for (i = aux ? 1 : 0; i < 4; i++) {
         di = drive_get_by_index(IF_IDE, i);
         if (di != NULL && !di->media_cd) {
             BlockBackend *blk = blk_by_legacy_dinfo(di);
diff --git a/include/hw/ide.h b/include/hw/ide.h
index bc8bd32..3ae087c 100644
--- a/include/hw/ide.h
+++ b/include/hw/ide.h
@@ -17,7 +17,7 @@ void pci_cmd646_ide_init(PCIBus *bus, DriveInfo **hd_table,
 PCIDevice *pci_piix3_xen_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
 PCIDevice *pci_piix3_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
 PCIDevice *pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
-int pci_piix3_xen_ide_unplug(DeviceState *dev);
+int pci_piix3_xen_ide_unplug(DeviceState *dev, bool aux);
 void vt82c686b_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn);
 
 /* ide-mmio.c */
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PULL 4/5] MAINTAINERS: Update xen-devel mailing list address
  2017-02-02 18:35 ` [Qemu-devel] [PULL 1/5] xen-platform: re-structure unplug_disks Stefano Stabellini
  2017-02-02 18:35   ` [Qemu-devel] [PULL 2/5] xen-platform: add support for unplugging NVMe disks Stefano Stabellini
  2017-02-02 18:35   ` [Qemu-devel] [PULL 3/5] xen-platform: add missing disk unplug option Stefano Stabellini
@ 2017-02-02 18:35   ` Stefano Stabellini
  2017-02-02 18:35   ` [Qemu-devel] [PULL 5/5] xen: use qdev_unplug() instead of g_free() in xen_pv_find_xendev() Stefano Stabellini
  3 siblings, 0 replies; 7+ messages in thread
From: Stefano Stabellini @ 2017-02-02 18:35 UTC (permalink / raw)
  To: stefanha
  Cc: sstabellini, stefanha, peter.maydell, anthony.perard, xen-devel,
	qemu-devel

From: Anthony PERARD <anthony.perard@citrix.com>

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index a428cb2..baea7c7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -323,7 +323,7 @@ Guest CPU Cores (Xen):
 X86
 M: Stefano Stabellini <sstabellini@kernel.org>
 M: Anthony Perard <anthony.perard@citrix.com>
-L: xen-devel@lists.xensource.com
+L: xen-devel@lists.xenproject.org
 S: Supported
 F: xen-*
 F: */xen*
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PULL 5/5] xen: use qdev_unplug() instead of g_free() in xen_pv_find_xendev()
  2017-02-02 18:35 ` [Qemu-devel] [PULL 1/5] xen-platform: re-structure unplug_disks Stefano Stabellini
                     ` (2 preceding siblings ...)
  2017-02-02 18:35   ` [Qemu-devel] [PULL 4/5] MAINTAINERS: Update xen-devel mailing list address Stefano Stabellini
@ 2017-02-02 18:35   ` Stefano Stabellini
  3 siblings, 0 replies; 7+ messages in thread
From: Stefano Stabellini @ 2017-02-02 18:35 UTC (permalink / raw)
  To: stefanha
  Cc: sstabellini, stefanha, peter.maydell, anthony.perard, xen-devel,
	qemu-devel, Juergen Gross

From: Juergen Gross <jgross@suse.com>

The error exits of xen_pv_find_xendev() free the new xen-device via
g_free() which is wrong.

As the xen-device has been initialized as qdev it must be removed
via qdev_unplug().

This bug has been introduced with commit 3a6c9172ac5951e6dac2b3f6
("xen: create qdev for each backend device").

Reported-by: Roger Pau Monné <roger.pau@citrix.com>
Tested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 hw/xen/xen_backend.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c
index d119004..6c21c37 100644
--- a/hw/xen/xen_backend.c
+++ b/hw/xen/xen_backend.c
@@ -124,10 +124,11 @@ static struct XenDevice *xen_be_get_xendev(const char *type, int dom, int dev,
     /* init new xendev */
     xendev = g_malloc0(ops->size);
     object_initialize(&xendev->qdev, ops->size, TYPE_XENBACKEND);
-    qdev_set_parent_bus(&xendev->qdev, xen_sysbus);
-    qdev_set_id(&xendev->qdev, g_strdup_printf("xen-%s-%d", type, dev));
-    qdev_init_nofail(&xendev->qdev);
-    object_unref(OBJECT(&xendev->qdev));
+    OBJECT(xendev)->free = g_free;
+    qdev_set_parent_bus(DEVICE(xendev), xen_sysbus);
+    qdev_set_id(DEVICE(xendev), g_strdup_printf("xen-%s-%d", type, dev));
+    qdev_init_nofail(DEVICE(xendev));
+    object_unref(OBJECT(xendev));
 
     xendev->type  = type;
     xendev->dom   = dom;
@@ -145,7 +146,7 @@ static struct XenDevice *xen_be_get_xendev(const char *type, int dom, int dev,
     xendev->evtchndev = xenevtchn_open(NULL, 0);
     if (xendev->evtchndev == NULL) {
         xen_pv_printf(NULL, 0, "can't open evtchn device\n");
-        g_free(xendev);
+        qdev_unplug(DEVICE(xendev), NULL);
         return NULL;
     }
     fcntl(xenevtchn_fd(xendev->evtchndev), F_SETFD, FD_CLOEXEC);
@@ -155,7 +156,7 @@ static struct XenDevice *xen_be_get_xendev(const char *type, int dom, int dev,
         if (xendev->gnttabdev == NULL) {
             xen_pv_printf(NULL, 0, "can't open gnttab device\n");
             xenevtchn_close(xendev->evtchndev);
-            g_free(xendev);
+            qdev_unplug(DEVICE(xendev), NULL);
             return NULL;
         }
     } else {
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PULL 0/5] xen-20170202
  2017-02-02 18:35 [Qemu-devel] [PULL 0/5] xen-20170202 Stefano Stabellini
  2017-02-02 18:35 ` [Qemu-devel] [PULL 1/5] xen-platform: re-structure unplug_disks Stefano Stabellini
@ 2017-02-03 13:11 ` Peter Maydell
  1 sibling, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2017-02-03 13:11 UTC (permalink / raw)
  To: Stefano Stabellini
  Cc: Stefan Hajnoczi, Stefan Hajnoczi, Anthony PERARD, xen-devel,
	QEMU Developers

On 2 February 2017 at 18:35, Stefano Stabellini <sstabellini@kernel.org> wrote:
> The following changes since commit 3aca12f841fcd6f3a7477076dad0d564360500de:
>
>   Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20170127' into staging (2017-01-27 16:59:17 +0000)
>
> are available in the git repository at:
>
>
>   git://xenbits.xen.org/people/sstabellini/qemu-dm.git tags/xen-20170202
>
> for you to fetch changes up to e9dcbc86d614018923e26e31319b0a54c9e5abac:
>
>   xen: use qdev_unplug() instead of g_free() in xen_pv_find_xendev() (2017-02-02 10:23:53 -0800)
>
> ----------------------------------------------------------------
> Xen 2017/02/02
>
> ----------------------------------------------------------------
> Anthony PERARD (1):
>       MAINTAINERS: Update xen-devel mailing list address
>
> Juergen Gross (1):
>       xen: use qdev_unplug() instead of g_free() in xen_pv_find_xendev()
>
> Paul Durrant (3):
>       xen-platform: re-structure unplug_disks
>       xen-platform: add support for unplugging NVMe disks...
>       xen-platform: add missing disk unplug option

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-02-03 13:11 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-02 18:35 [Qemu-devel] [PULL 0/5] xen-20170202 Stefano Stabellini
2017-02-02 18:35 ` [Qemu-devel] [PULL 1/5] xen-platform: re-structure unplug_disks Stefano Stabellini
2017-02-02 18:35   ` [Qemu-devel] [PULL 2/5] xen-platform: add support for unplugging NVMe disks Stefano Stabellini
2017-02-02 18:35   ` [Qemu-devel] [PULL 3/5] xen-platform: add missing disk unplug option Stefano Stabellini
2017-02-02 18:35   ` [Qemu-devel] [PULL 4/5] MAINTAINERS: Update xen-devel mailing list address Stefano Stabellini
2017-02-02 18:35   ` [Qemu-devel] [PULL 5/5] xen: use qdev_unplug() instead of g_free() in xen_pv_find_xendev() Stefano Stabellini
2017-02-03 13:11 ` [Qemu-devel] [PULL 0/5] xen-20170202 Peter Maydell

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).