Alex Williamson wrote: > Commit 909bfdba fixed a hole with not closing resource file descriptors > but we need to be more careful about tracking which are real fds, > otherwise we might close fd 0, which doesn't work out so well for stdio. > > Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> > --- > > v2: fix qemu style braces > > hw/device-assignment.c | 10 ++++++---- > 1 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/hw/device-assignment.c b/hw/device-assignment.c > index 48ac73c..de9470c 100644 > --- a/hw/device-assignment.c > +++ b/hw/device-assignment.c > @@ -694,6 +694,7 @@ again: > > rp = dev->regions + r; > rp->valid = 0; > + rp->resource_fd = -1; > size = end - start + 1; > flags &= IORESOURCE_IO | IORESOURCE_MEM | IORESOURCE_PREFETCH; > if (size == 0 || (flags & ~IORESOURCE_PREFETCH) == 0) > @@ -785,7 +786,9 @@ static void free_assigned_device(AssignedDevice *dev) > fprintf(stderr, > "Failed to unmap assigned device region: %s\n", > strerror(errno)); > - close(pci_region->resource_fd); > + if (pci_region->resource_fd >= 0) { > + close(pci_region->resource_fd); > + } > } > } > } > @@ -793,9 +796,8 @@ static void free_assigned_device(AssignedDevice *dev) > if (dev->cap.available & ASSIGNED_DEVICE_CAP_MSIX) > assigned_dev_unregister_msix_mmio(dev); > > - if (dev->real_device.config_fd) { > + if (dev->real_device.config_fd >= 0) { > close(dev->real_device.config_fd); > - dev->real_device.config_fd = 0; > } > > #ifdef KVM_CAP_IRQ_ROUTING > @@ -1415,7 +1417,7 @@ static int assigned_initfn(struct PCIDevice *pci_dev) > > if (!dev->host.seg && !dev->host.bus && !dev->host.dev && !dev->host.func) { > error_report("pci-assign: error: no host device specified"); > - goto out; > + return -1; > } > > if (get_real_device(dev, dev->host.seg, dev->host.bus, > > -- > 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 thanks for reply on other if check's. Acked-by: Donald Dutile <ddutile@xxxxxxxxxx> -- 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