From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: [PATCH] pci-assign: Hide ioport regions on lacking sysfs support Date: Tue, 29 May 2012 19:04:58 +0200 Message-ID: <4FC501BA.5010105@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: kvm , Alex Williamson To: Avi Kivity , Marcelo Tosatti Return-path: Received: from goliath.siemens.de ([192.35.17.28]:33976 "EHLO goliath.siemens.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752712Ab2E2RFE (ORCPT ); Tue, 29 May 2012 13:05:04 -0400 Sender: kvm-owner@vger.kernel.org List-ID: 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 --- 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