While possibly safe in practice, this doesn't look like the correct fix. It is possible that this will result in a close(0) if HAVE_MTRR is defined and mtrr_fd was just never set.
HAVE_MTRR is defined if <asm/mtrr.h> exists. mtrr_fd is set if HAVE_MTRR is defined and linux_sysfs is used. Probably a trivial example of this would be to "sudo touch /usr/include/asm/mtrr.h" on FreeBSD. On Oct 21, 2011, at 11:49, Nithin Nayak Sujir wrote: > 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. > > Signed-off-by: Nithin Nayak Sujir <nsu...@broadcom.com> > --- > src/common_init.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/src/common_init.c b/src/common_init.c > index 5e91c27..d7ade3f 100644 > --- a/src/common_init.c > +++ b/src/common_init.c > @@ -31,7 +31,9 @@ > > #include <stdlib.h> > #include <errno.h> > +#include <unistd.h> > > +#include "config.h" > #include "pciaccess.h" > #include "pciaccess_private.h" > > @@ -122,6 +124,10 @@ pci_system_cleanup( void ) > (*pci_sys->methods->destroy)(); > } > > +#ifdef HAVE_MTRR > + if (pci_sys->mtrr_fd != -1) > + close(pci_sys->mtrr_fd); > +#endif > free( pci_sys ); > pci_sys = NULL; > } > -- > 1.7.1 > > > _______________________________________________ > xorg@lists.freedesktop.org: X.Org support > Archives: http://lists.freedesktop.org/archives/xorg > Info: http://lists.freedesktop.org/mailman/listinfo/xorg > Your subscription address: jerem...@freedesktop.org > _______________________________________________ xorg@lists.freedesktop.org: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: arch...@mail-archive.com