From 226e04e322d1c2c5dc88561b5c8e0017cf793733 Mon Sep 17 00:00:00 2001 From: Thanos Makatos Date: Fri, 28 May 2021 10:32:35 +0100 Subject: gpio: optionally disable migration (#536) This helps debugging. Signed-off-by: Thanos Makatos Reviewed-by: John Levon --- samples/gpio-pci-idio-16.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'samples') diff --git a/samples/gpio-pci-idio-16.c b/samples/gpio-pci-idio-16.c index 7bffb5e..d773067 100644 --- a/samples/gpio-pci-idio-16.c +++ b/samples/gpio-pci-idio-16.c @@ -142,6 +142,7 @@ main(int argc, char *argv[]) int ret; bool verbose = false; bool restart = true; + bool enable_migr = true; int opt; struct sigaction act = { .sa_handler = _sa_handler }; vfu_ctx_t *vfu_ctx; @@ -158,7 +159,7 @@ main(int argc, char *argv[]) .write_data = &migration_write_data }; - while ((opt = getopt(argc, argv, "Rv")) != -1) { + while ((opt = getopt(argc, argv, "MRv")) != -1) { switch (opt) { case 'R': restart = false; @@ -166,6 +167,9 @@ main(int argc, char *argv[]) case 'v': verbose = true; break; + case 'M': + enable_migr = false; + break; default: /* '?' */ fprintf(stderr, "Usage: %s [-Rv] \n", argv[0]); exit(EXIT_FAILURE); @@ -210,15 +214,17 @@ main(int argc, char *argv[]) err(EXIT_FAILURE, "failed to setup region"); } - ret = vfu_setup_region(vfu_ctx, VFU_PCI_DEV_MIGR_REGION_IDX, migr_size, - NULL, VFU_REGION_FLAG_RW, NULL, 0, -1, 0); - if (ret < 0) { - err(EXIT_FAILURE, "failed to setup migration region"); - } - ret = vfu_setup_device_migration_callbacks(vfu_ctx, &migr_callbacks, - migr_regs_size); - if (ret < 0) { - err(EXIT_FAILURE, "failed to setup device migration"); + if (enable_migr) { + ret = vfu_setup_region(vfu_ctx, VFU_PCI_DEV_MIGR_REGION_IDX, migr_size, + NULL, VFU_REGION_FLAG_RW, NULL, 0, -1, 0); + if (ret < 0) { + err(EXIT_FAILURE, "failed to setup migration region"); + } + ret = vfu_setup_device_migration_callbacks(vfu_ctx, &migr_callbacks, + migr_regs_size); + if (ret < 0) { + err(EXIT_FAILURE, "failed to setup device migration"); + } } ret = vfu_setup_device_nr_irqs(vfu_ctx, VFU_DEV_INTX_IRQ, 1); -- cgit v1.1