All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: "open list:IDE" <qemu-block@nongnu.org>,
	Alexander Graf <agraf@suse.de>,
	armbru@redhat.com, "open list:sPAPR" <qemu-ppc@nongnu.org>,
	Gerd Hoffmann <kraxel@redhat.com>,
	pbonzini@redhat.com, John Snow <jsnow@redhat.com>,
	David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [PATCH v6 12/29] libqos: Track QTestState with QPCIBus
Date: Fri, 1 Sep 2017 16:20:46 -0300	[thread overview]
Message-ID: <13667793-2b90-2e9d-4582-6087258adfc2@amsat.org> (raw)
In-Reply-To: <20170901180340.30009-13-eblake@redhat.com>

Hi Eric,

On 09/01/2017 03:03 PM, Eric Blake wrote:
> When initializing a QPCIBus, track which QTestState the bus is
> associated with (so that a later patch can then explicitly use
> that test state for all communication on the bus, rather than
> blindly relying on global_qtest).  Update the initialization
> functions to take another parameter, and update all callers to
> pass in state (for now, most callers get away with passing the
> current global_qtest as the current state, although this required
> fixing the order of initialization to ensure qtest_start() is
> called before qpci_init*() in rtl8139-test, and provided an
> opportunity to pass in the allocator in e1000e-test).
> 
> Signed-off-by: Eric Blake <eblake@redhat.com>
> ---
>   tests/libqos/ahci.h       | 2 +-
>   tests/libqos/libqos.h     | 2 +-
>   tests/libqos/pci-pc.h     | 2 +-
>   tests/libqos/pci-spapr.h  | 2 +-
>   tests/libqos/pci.h        | 1 +
>   tests/ahci-test.c         | 2 +-
>   tests/e1000e-test.c       | 6 +++---
>   tests/i440fx-test.c       | 2 +-
>   tests/ide-test.c          | 2 +-
>   tests/libqos/ahci.c       | 4 ++--
>   tests/libqos/libqos.c     | 4 ++--
>   tests/libqos/pci-pc.c     | 5 ++++-
>   tests/libqos/pci-spapr.c  | 6 +++++-
>   tests/q35-test.c          | 4 ++--
>   tests/rtl8139-test.c      | 5 +++--
>   tests/tco-test.c          | 2 +-
>   tests/usb-hcd-ehci-test.c | 2 +-
>   tests/vhost-user-test.c   | 4 ++--
>   18 files changed, 33 insertions(+), 24 deletions(-)
> 
> diff --git a/tests/libqos/ahci.h b/tests/libqos/ahci.h
> index 5f9627bb0f..715ca1e226 100644
> --- a/tests/libqos/ahci.h
> +++ b/tests/libqos/ahci.h
> @@ -571,7 +571,7 @@ void ahci_free(AHCIQState *ahci, uint64_t addr);
>   void ahci_clean_mem(AHCIQState *ahci);
> 
>   /* Device management */
> -QPCIDevice *get_ahci_device(uint32_t *fingerprint);
> +QPCIDevice *get_ahci_device(QTestState *qts, uint32_t *fingerprint);
>   void free_ahci_device(QPCIDevice *dev);
>   void ahci_pci_enable(AHCIQState *ahci);
>   void start_ahci_device(AHCIQState *ahci);
> diff --git a/tests/libqos/libqos.h b/tests/libqos/libqos.h
> index 231969766f..78e5c044a0 100644
> --- a/tests/libqos/libqos.h
> +++ b/tests/libqos/libqos.h
> @@ -10,7 +10,7 @@ typedef struct QOSState QOSState;
>   typedef struct QOSOps {
>       QGuestAllocator *(*init_allocator)(QAllocOpts);
>       void (*uninit_allocator)(QGuestAllocator *);
> -    QPCIBus *(*qpci_init)(QGuestAllocator *alloc);
> +    QPCIBus *(*qpci_init)(QTestState *qts, QGuestAllocator *alloc);
>       void (*qpci_free)(QPCIBus *bus);
>       void (*shutdown)(QOSState *);
>   } QOSOps;
> diff --git a/tests/libqos/pci-pc.h b/tests/libqos/pci-pc.h
> index 9479b51642..491eeac756 100644
> --- a/tests/libqos/pci-pc.h
> +++ b/tests/libqos/pci-pc.h
> @@ -16,7 +16,7 @@
>   #include "libqos/pci.h"
>   #include "libqos/malloc.h"
> 
> -QPCIBus *qpci_init_pc(QGuestAllocator *alloc);
> +QPCIBus *qpci_init_pc(QTestState *qts, QGuestAllocator *alloc);
>   void     qpci_free_pc(QPCIBus *bus);
> 
>   #endif
> diff --git a/tests/libqos/pci-spapr.h b/tests/libqos/pci-spapr.h
> index 4192126d86..387686dfc8 100644
> --- a/tests/libqos/pci-spapr.h
> +++ b/tests/libqos/pci-spapr.h
> @@ -11,7 +11,7 @@
>   #include "libqos/malloc.h"
>   #include "libqos/pci.h"
> 
> -QPCIBus *qpci_init_spapr(QGuestAllocator *alloc);
> +QPCIBus *qpci_init_spapr(QTestState *qts, QGuestAllocator *alloc);
>   void     qpci_free_spapr(QPCIBus *bus);
> 
>   #endif
> diff --git a/tests/libqos/pci.h b/tests/libqos/pci.h
> index ed480614ff..429c382282 100644
> --- a/tests/libqos/pci.h
> +++ b/tests/libqos/pci.h
> @@ -48,6 +48,7 @@ struct QPCIBus {
>       void (*config_writel)(QPCIBus *bus, int devfn,
>                             uint8_t offset, uint32_t value);
> 
> +    QTestState *qts;
>       uint16_t pio_alloc_ptr;
>       uint64_t mmio_alloc_ptr, mmio_limit;
>   };
> diff --git a/tests/ahci-test.c b/tests/ahci-test.c
> index 999121bb7c..c94d1bd712 100644
> --- a/tests/ahci-test.c
> +++ b/tests/ahci-test.c
> @@ -160,7 +160,7 @@ static AHCIQState *ahci_vboot(const char *cli, va_list ap)
>       alloc_set_flags(s->parent->alloc, ALLOC_LEAK_ASSERT);
> 
>       /* Verify that we have an AHCI device present. */
> -    s->dev = get_ahci_device(&s->fingerprint);
> +    s->dev = get_ahci_device(s->parent->qts, &s->fingerprint);
> 
>       return s;
>   }
> diff --git a/tests/e1000e-test.c b/tests/e1000e-test.c
> index c612dc64ec..d8085d944e 100644
> --- a/tests/e1000e-test.c
> +++ b/tests/e1000e-test.c
> @@ -392,12 +392,12 @@ static void data_test_init(e1000e_device *d)
>       qtest_start(cmdline);
>       g_free(cmdline);
> 
> -    test_bus = qpci_init_pc(NULL);
> -    g_assert_nonnull(test_bus);
> -
>       test_alloc = pc_alloc_init();
>       g_assert_nonnull(test_alloc);
> 
> +    test_bus = qpci_init_pc(global_qtest, test_alloc);
> +    g_assert_nonnull(test_bus);
> +
>       e1000e_device_init(test_bus, d);
>   }
> 
> diff --git a/tests/i440fx-test.c b/tests/i440fx-test.c
> index e9d05c87d1..4390e5591e 100644
> --- a/tests/i440fx-test.c
> +++ b/tests/i440fx-test.c
> @@ -38,7 +38,7 @@ static QPCIBus *test_start_get_bus(const TestData *s)
>       cmdline = g_strdup_printf("-smp %d", s->num_cpus);
>       qtest_start(cmdline);
>       g_free(cmdline);
> -    return qpci_init_pc(NULL);
> +    return qpci_init_pc(global_qtest, NULL);
>   }
> 
>   static void test_i440fx_defaults(gconstpointer opaque)
> diff --git a/tests/ide-test.c b/tests/ide-test.c
> index aa9de065fc..b2237b6158 100644
> --- a/tests/ide-test.c
> +++ b/tests/ide-test.c
> @@ -143,7 +143,7 @@ static QPCIDevice *get_pci_device(QPCIBar *bmdma_bar, QPCIBar *ide_bar)
>       uint16_t vendor_id, device_id;
> 
>       if (!pcibus) {
> -        pcibus = qpci_init_pc(NULL);
> +        pcibus = qpci_init_pc(global_qtest, NULL);
>       }
> 
>       /* Find PCI device and verify it's the right one */
> diff --git a/tests/libqos/ahci.c b/tests/libqos/ahci.c
> index 1ca7f456b5..790ef991b3 100644
> --- a/tests/libqos/ahci.c
> +++ b/tests/libqos/ahci.c
> @@ -123,13 +123,13 @@ bool is_atapi(AHCIQState *ahci, uint8_t port)
>   /**
>    * Locate, verify, and return a handle to the AHCI device.
>    */
> -QPCIDevice *get_ahci_device(uint32_t *fingerprint)
> +QPCIDevice *get_ahci_device(QTestState *qts, uint32_t *fingerprint)
>   {
>       QPCIDevice *ahci;
>       uint32_t ahci_fingerprint;
>       QPCIBus *pcibus;
> 
> -    pcibus = qpci_init_pc(NULL);
> +    pcibus = qpci_init_pc(qts, NULL);
> 
>       /* Find the AHCI PCI device and verify it's the right one. */
>       ahci = qpci_device_find(pcibus, QPCI_DEVFN(0x1F, 0x02));
> diff --git a/tests/libqos/libqos.c b/tests/libqos/libqos.c
> index 6226546c28..c95428e1cb 100644
> --- a/tests/libqos/libqos.c
> +++ b/tests/libqos/libqos.c
> @@ -26,8 +26,8 @@ QOSState *qtest_vboot(QOSOps *ops, const char *cmdline_fmt, va_list ap)
>           if (ops->init_allocator) {
>               qs->alloc = ops->init_allocator(ALLOC_NO_FLAGS);
>           }
> -        if (ops->qpci_init && qs->alloc) {
> -            qs->pcibus = ops->qpci_init(qs->alloc);
> +        if (ops->qpci_init) {
> +            qs->pcibus = ops->qpci_init(qs->qts, qs->alloc);
>           }
>       }
> 
> diff --git a/tests/libqos/pci-pc.c b/tests/libqos/pci-pc.c
> index 02ce49927a..85b34c6d13 100644
> --- a/tests/libqos/pci-pc.c
> +++ b/tests/libqos/pci-pc.c
> @@ -115,11 +115,14 @@ static void qpci_pc_config_writel(QPCIBus *bus, int devfn, uint8_t offset, uint3
>       outl(0xcfc, value);
>   }
> 
> -QPCIBus *qpci_init_pc(QGuestAllocator *alloc)
> +QPCIBus *qpci_init_pc(QTestState *qts, QGuestAllocator *alloc)
>   {
>       QPCIBusPC *ret;
> 
> +    assert(qts);
> +
>       ret = g_malloc(sizeof(*ret));

I'd rather use g_malloc0() here (safer!)

> +    ret->bus.qts = qts;
> 
>       ret->bus.pio_readb = qpci_pc_pio_readb;
>       ret->bus.pio_readw = qpci_pc_pio_readw;

or init qts field in same order than struct:

...
         ret->bus.config_writel = qpci_pc_config_writel;

+       ret->bus.qts = qts;

         ret->bus.pio_alloc_ptr = 0xc000;
...

> diff --git a/tests/libqos/pci-spapr.c b/tests/libqos/pci-spapr.c
> index 2043f1e123..cd9b8f52d2 100644
> --- a/tests/libqos/pci-spapr.c
> +++ b/tests/libqos/pci-spapr.c
> @@ -154,11 +154,14 @@ static void qpci_spapr_config_writel(QPCIBus *bus, int devfn, uint8_t offset,
>   #define SPAPR_PCI_MMIO32_WIN_SIZE    0x80000000 /* 2 GiB */
>   #define SPAPR_PCI_IO_WIN_SIZE        0x10000
> 
> -QPCIBus *qpci_init_spapr(QGuestAllocator *alloc)
> +QPCIBus *qpci_init_spapr(QTestState *qts, QGuestAllocator *alloc)
>   {
>       QPCIBusSPAPR *ret;
> 
> +    assert(qts);
> +
>       ret = g_malloc(sizeof(*ret));
> +    ret->bus.qts = qts;

same

Either ways:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> 
>       ret->alloc = alloc;
> 
> @@ -201,6 +204,7 @@ QPCIBus *qpci_init_spapr(QGuestAllocator *alloc)
>       ret->bus.mmio_alloc_ptr = ret->mmio32.pci_base;
>       ret->bus.mmio_limit = ret->mmio32.pci_base + ret->mmio32.size;
> 
> +
>       return &ret->bus;
>   }
> 
> diff --git a/tests/q35-test.c b/tests/q35-test.c
> index f98bed7a2d..e149c4c51d 100644
> --- a/tests/q35-test.c
> +++ b/tests/q35-test.c
> @@ -86,7 +86,7 @@ static void test_smram_lock(void)
> 
>       qtest_start("-M q35");
> 
> -    pcibus = qpci_init_pc(NULL);
> +    pcibus = qpci_init_pc(global_qtest, NULL);
>       g_assert(pcibus != NULL);
> 
>       pcidev = qpci_device_find(pcibus, 0);
> @@ -145,7 +145,7 @@ static void test_tseg_size(const void *data)
>       g_free(cmdline);
> 
>       /* locate the DRAM controller */
> -    pcibus = qpci_init_pc(NULL);
> +    pcibus = qpci_init_pc(global_qtest, NULL);
>       g_assert(pcibus != NULL);
>       pcidev = qpci_device_find(pcibus, 0);
>       g_assert(pcidev != NULL);
> diff --git a/tests/rtl8139-test.c b/tests/rtl8139-test.c
> index 7de7dc45ae..68bfc42178 100644
> --- a/tests/rtl8139-test.c
> +++ b/tests/rtl8139-test.c
> @@ -35,7 +35,7 @@ static QPCIDevice *get_device(void)
>   {
>       QPCIDevice *dev;
> 
> -    pcibus = qpci_init_pc(NULL);
> +    pcibus = qpci_init_pc(global_qtest, NULL);
>       qpci_device_foreach(pcibus, 0x10ec, 0x8139, save_fn, &dev);
>       g_assert(dev != NULL);
> 
> @@ -197,11 +197,12 @@ int main(int argc, char **argv)
>   {
>       int ret;
> 
> +    qtest_start("-device rtl8139");
> +
>       g_test_init(&argc, &argv, NULL);
>       qtest_add_func("/rtl8139/nop", nop);
>       qtest_add_func("/rtl8139/timer", test_init);
> 
> -    qtest_start("-device rtl8139");
>       ret = g_test_run();
> 
>       qtest_end();
> diff --git a/tests/tco-test.c b/tests/tco-test.c
> index f2ed6ed91c..0387971953 100644
> --- a/tests/tco-test.c
> +++ b/tests/tco-test.c
> @@ -64,7 +64,7 @@ static void test_init(TestData *d)
>       qtest_irq_intercept_in(qs, "ioapic");
>       g_free(s);
> 
> -    d->bus = qpci_init_pc(NULL);
> +    d->bus = qpci_init_pc(qs, NULL);
>       d->dev = qpci_device_find(d->bus, QPCI_DEVFN(0x1f, 0x00));
>       g_assert(d->dev != NULL);
> 
> diff --git a/tests/usb-hcd-ehci-test.c b/tests/usb-hcd-ehci-test.c
> index 944eb1c088..55d4743a2a 100644
> --- a/tests/usb-hcd-ehci-test.c
> +++ b/tests/usb-hcd-ehci-test.c
> @@ -52,7 +52,7 @@ static void ehci_port_test(struct qhc *hc, int port, uint32_t expect)
> 
>   static void test_init(void)
>   {
> -    pcibus = qpci_init_pc(NULL);
> +    pcibus = qpci_init_pc(global_qtest, NULL);
>       g_assert(pcibus != NULL);
> 
>       qusb_pci_init_one(pcibus, &uhci1, QPCI_DEVFN(0x1d, 0), 4);
> diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
> index d4da09f147..ea7d38ea44 100644
> --- a/tests/vhost-user-test.c
> +++ b/tests/vhost-user-test.c
> @@ -164,7 +164,7 @@ static void init_virtio_dev(TestServer *s)
>       QVirtioPCIDevice *dev;
>       uint32_t features;
> 
> -    s->bus = qpci_init_pc(NULL);
> +    s->bus = qpci_init_pc(global_qtest, NULL);
>       g_assert_nonnull(s->bus);
> 
>       dev = qvirtio_pci_device_find(s->bus, VIRTIO_ID_NET);
> @@ -891,7 +891,7 @@ static void test_multiqueue(void)
>       qtest_start(cmd);
>       g_free(cmd);
> 
> -    bus = qpci_init_pc(NULL);
> +    bus = qpci_init_pc(global_qtest, NULL);
>       dev = virtio_net_pci_init(bus, PCI_SLOT);
> 
>       alloc = pc_alloc_init();
> 

  reply	other threads:[~2017-09-01 19:21 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-01 18:03 [Qemu-devel] [PATCH v6 00/29] Preliminary libqtest cleanups Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 01/29] tests: Improve .gitignore for tests/multiboot Eric Blake
2017-09-04 14:03   ` Thomas Huth
2017-09-06 19:33     ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 02/29] tests: Sort .gitignore Eric Blake
2017-09-05  7:20   ` Thomas Huth
2017-09-05  9:53     ` Markus Armbruster
2017-09-05  9:58       ` Thomas Huth
2017-09-05 10:10       ` Daniel P. Berrange
2017-09-05 10:44         ` Thomas Huth
2017-09-05 14:22         ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 03/29] test-qga: Kill broken and dead QGA_TEST_SIDE_EFFECTING code Eric Blake
2017-09-05  7:43   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 04/29] qtest: Don't perform side effects inside assertion Eric Blake
2017-09-04 14:06   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 05/29] numa-test: Use hmp() Eric Blake
2017-09-05  7:44   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 06/29] tests: Clean up wait for event Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 07/29] libqtest: Remove dead qtest_instances variable Eric Blake
2017-09-04 17:02   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 08/29] libqtest: Let socket_send() compute length Eric Blake
2017-09-05  8:12   ` Thomas Huth
2017-09-05  9:54     ` Markus Armbruster
2017-09-05 22:20       ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 09/29] libqtest: Use qemu_strtoul() Eric Blake
2017-09-05  9:11   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 10/29] libqtest: Topologically sort functions Eric Blake
2017-09-05  9:22   ` Thomas Huth
2017-09-05 10:01     ` Markus Armbruster
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 11/29] libqtest: Inline qtest_query_target_endianness() Eric Blake
2017-09-02  0:10   ` Philippe Mathieu-Daudé
2017-09-05  9:25   ` Thomas Huth
2017-09-06 20:12     ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 12/29] libqos: Track QTestState with QPCIBus Eric Blake
2017-09-01 19:20   ` Philippe Mathieu-Daudé [this message]
2017-09-06 20:48     ` Eric Blake
2017-09-01 23:06   ` John Snow
2017-09-05  9:36   ` Thomas Huth
2017-09-06 21:00     ` Eric Blake
2017-09-07  5:35       ` Thomas Huth
2017-09-07 13:32         ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 13/29] libqos: Use explicit QTestState for pci operations Eric Blake
2017-09-01 19:22   ` Philippe Mathieu-Daudé
2017-09-05 10:03   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 14/29] libqos: Use explicit QTestState for fw_cfg operations Eric Blake
2017-09-01 19:21   ` [Qemu-devel] [PATCH v6 14.5/29] fixup! " Eric Blake
2017-09-01 19:24   ` [Qemu-devel] [PATCH v6 14/29] " Philippe Mathieu-Daudé
2017-09-01 23:06   ` John Snow
2017-09-05 10:12   ` Thomas Huth
2017-09-05 11:03     ` Thomas Huth
2017-09-06 21:10       ` Eric Blake
2017-09-06 21:25         ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 15/29] libqos: Use explicit QTestState for rtas operations Eric Blake
2017-09-05 10:16   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 16/29] libqos: Use explicit QTestState for virtio operations Eric Blake
2017-09-05 10:26   ` Thomas Huth
2017-09-05 12:43     ` [Qemu-devel] [Qemu-block] " Paolo Bonzini
2017-09-06 21:42       ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 17/29] ahci-test: Drop dependence on global_qtest Eric Blake
2017-09-01 23:11   ` John Snow
2017-09-05 10:32   ` Thomas Huth
2017-09-07 20:19     ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 18/29] ivshmem-test: " Eric Blake
2017-09-05 10:36   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 19/29] postcopy-test: " Eric Blake
2017-09-05 10:41   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 20/29] vhost-user-test: " Eric Blake
2017-09-05 10:49   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 21/29] qmp-test: " Eric Blake
2017-09-05  7:11   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 22/29] tests/boot-sector: " Eric Blake
2017-09-05  7:04   ` Thomas Huth
2017-09-08 12:48   ` Michael S. Tsirkin
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 23/29] tests/acpi-utils: " Eric Blake
2017-09-05 10:57   ` Thomas Huth
2017-09-08 12:48   ` Michael S. Tsirkin
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 24/29] bios-tables-test: " Eric Blake
2017-09-05 10:59   ` Thomas Huth
2017-09-07 21:30     ` Eric Blake
2017-09-08 12:49   ` Michael S. Tsirkin
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 25/29] wdt_ib700-test: " Eric Blake
2017-09-05 11:01   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 26/29] fw_cfg-test: " Eric Blake
2017-09-02  0:07   ` Philippe Mathieu-Daudé
2017-09-05 11:05   ` Thomas Huth
2017-09-06 21:45     ` Eric Blake
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 27/29] libqtest: Make qtest_init() accept format string Eric Blake
2017-09-05 12:46   ` Thomas Huth
2017-09-07 18:00     ` Eric Blake
2017-09-07 19:07       ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 28/29] libqtest: Remove qtest_start() and qtest_end() shortcuts Eric Blake
2017-09-01 23:16   ` John Snow
2017-09-05 13:06   ` Thomas Huth
2017-09-01 18:03 ` [Qemu-devel] [PATCH v6 29/29] libqtest: Rename qtest_init() to qtest_start() Eric Blake
2017-09-01 23:17   ` John Snow
2017-09-05 13:10   ` Thomas Huth
2017-09-07  2:57     ` Eric Blake
2017-09-01 18:31 ` [Qemu-devel] [PATCH v6 00/29] Preliminary libqtest cleanups no-reply
2017-09-01 18:44   ` Eric Blake

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=13667793-2b90-2e9d-4582-6087258adfc2@amsat.org \
    --to=f4bug@amsat.org \
    --cc=agraf@suse.de \
    --cc=armbru@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=eblake@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.