Since the fd is not closed, calling pci_system_init and pci_system_cleanup more than 1024 times results in "too many files open" error.
v2: Modified the patch to use the destroy hook function instead of calling close in the common code based on Jeremy Huddleston's comments. It seemed appropriate to use the destroy hook since other implementations are doing clean ups here. Signed-off-by: Nithin Nayak Sujir <[email protected]> --- src/linux_sysfs.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/src/linux_sysfs.c b/src/linux_sysfs.c index d5ba66a..09e7138 100644 --- a/src/linux_sysfs.c +++ b/src/linux_sysfs.c @@ -889,8 +889,18 @@ pci_device_linux_sysfs_unmap_legacy(struct pci_device *dev, void *addr, pciaddr_ return munmap(addr, size); } + +static void +pci_system_linux_destroy(void) +{ +#ifdef HAVE_MTRR + if (pci_sys->mtrr_fd > 0) + close(pci_sys->mtrr_fd); +#endif +} + static const struct pci_system_methods linux_sysfs_methods = { - .destroy = NULL, + .destroy = pci_system_linux_destroy, .destroy_device = NULL, .read_rom = pci_device_linux_sysfs_read_rom, .probe = pci_device_linux_sysfs_probe, -- 1.7.1 _______________________________________________ [email protected]: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: [email protected]
