From d165a9c032a1ece85190a3583c3959ae3f0de14c Mon Sep 17 00:00:00 2001 From: Alex Williamson <alex.williamson@redhat.com> Date: Wed, 21 Sep 2011 15:24:56 +0200 Subject: [PATCH 2/2] pci-assign: Cleanup file descriptors RH-Author: Alex Williamson <alex.williamson@redhat.com> Message-id: <20110921152426.10592.21804.stgit@x201.home> Patchwork-id: 33088 O-Subject: [RHEL5.8 kvm PATCH] pci-assign: Cleanup file descriptors Bugzilla: 700281 RH-Acked-by: Kevin Wolf <kwolf@redhat.com> RH-Acked-by: Amit Shah <amit.shah@redhat.com> RH-Acked-by: Don Dutile <ddutile@redhat.com> Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=700281 Brew build: https://brewweb.devel.redhat.com/taskinfo?taskID=3654509 Upstream status: N/A We're not closing file descriptors, which results in too many open files after enough hotplug operations. We actually have the config fd opened twice, once explicitly and the other via libpci. Be sure to close the libpci one via pci_free_dev. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> --- qemu/hw/device-assignment.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) Signed-off-by: Michal Novotny <mignov@gmail.com> --- qemu/hw/device-assignment.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/qemu/hw/device-assignment.c b/qemu/hw/device-assignment.c index 245d011..ab33e75 100644 --- a/qemu/hw/device-assignment.c +++ b/qemu/hw/device-assignment.c @@ -574,6 +574,7 @@ static void free_assigned_device(AssignedDevInfo *adev) "Failed to unmap assigned device region: %s\n", strerror(errno)); } + close(pci_region->resource_fd); } if (dev->real_device.config_fd) { @@ -585,6 +586,10 @@ static void free_assigned_device(AssignedDevInfo *adev) #ifdef KVM_CAP_IRQ_ROUTING free_dev_irq_entries(dev); #endif + if (dev->pdev) { + pci_free_dev(dev->pdev); + } + adev->assigned_dev = dev = NULL; } -- 1.7.4.4