As suggested by Alex: Instead of failing if the kernel does not allow us to speak to an ioport region, warn the user but, hide the region and continue. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> --- hw/device-assignment.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/device-assignment.c b/hw/device-assignment.c index 9ad5de5..e47a23c 100644 --- a/hw/device-assignment.c +++ b/hw/device-assignment.c @@ -429,11 +429,12 @@ static int assigned_dev_register_regions(PCIRegion *io_regions, fprintf(stderr, "Unexpected return from I/O port read: %d\n", ret); abort(); - } else if (errno != EINVAL) { - fprintf(stderr, - "Kernel doesn't support ioport resource access.\n"); + } else if (errno != EINVAL || 1) { + fprintf(stderr, "Kernel doesn't support ioport resource " + "access, hiding this region.\n"); close(pci_dev->v_addrs[i].region->resource_fd); - return -1; + cur_region->valid = 0; + continue; } pci_dev->v_addrs[i].u.r_baseport = cur_region->base_addr; -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html