diff mbox

[i-g-t] lib/debugfs: Close dir before returning open debugs file

Message ID 20170407083434.28466-1-ander.conselvan.de.oliveira@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ander Conselvan de Oliveira April 7, 2017, 8:34 a.m. UTC
The function igt_debugfs_open() would not close the debugfs dir before
returning. Tests that do a lot of pipe CRC comparaions, such as
kms_cursor_crc,  would eventually fail.

(kms_cursor_crc:3853) igt-debugfs-CRITICAL: Test assertion failure function igt_pipe_crc_do_start, file igt_debugfs.c:387:
(kms_cursor_crc:3853) igt-debugfs-CRITICAL: Failed assertion: err == 0
(kms_cursor_crc:3853) igt-debugfs-CRITICAL: Last errno: 24, Too many open files
(kms_cursor_crc:3853) igt-debugfs-CRITICAL: error: -24 != 0

83884e97e187 ("Restore "lib: Open debugfs files for the given DRM device"")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
---
 lib/igt_debugfs.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Chris Wilson April 7, 2017, 8:54 a.m. UTC | #1
On Fri, Apr 07, 2017 at 11:34:34AM +0300, Ander Conselvan de Oliveira wrote:
> The function igt_debugfs_open() would not close the debugfs dir before
> returning. Tests that do a lot of pipe CRC comparaions, such as
> kms_cursor_crc,  would eventually fail.
> 
> (kms_cursor_crc:3853) igt-debugfs-CRITICAL: Test assertion failure function igt_pipe_crc_do_start, file igt_debugfs.c:387:
> (kms_cursor_crc:3853) igt-debugfs-CRITICAL: Failed assertion: err == 0
> (kms_cursor_crc:3853) igt-debugfs-CRITICAL: Last errno: 24, Too many open files
> (kms_cursor_crc:3853) igt-debugfs-CRITICAL: error: -24 != 0

Whoops. Also for any test that repeatedly opens a debugfs, please do
move the igt_debugfs_dir() into the caller so we can cache the lookup
inside the fd.

> 83884e97e187 ("Restore "lib: Open debugfs files for the given DRM device"")
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
diff mbox

Patch

diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index d64694c..fb6d521 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -212,13 +212,17 @@  int igt_debugfs_dir(int device)
  */
 int igt_debugfs_open(int device, const char *filename, int mode)
 {
-	int dir;
+	int dir, ret;
 
 	dir = igt_debugfs_dir(device);
 	if (dir < 0)
 		return dir;
 
-	return openat(dir, filename, mode);
+	ret = openat(dir, filename, mode);
+
+	close(dir);
+
+	return ret;
 }
 
 /**