diff --git a/overlay/debugfs.c b/overlay/debugfs.c
index ccce227..9f3e5cc 100644
--- a/overlay/debugfs.c
+++ b/overlay/debugfs.c
@@ -26,10 +26,12 @@
 #include <sys/mount.h>
 #include <errno.h>
 #include <stdio.h>
+#include <string.h>
 
 #include "debugfs.h"
 
 char debugfs_path[128];
+char debugfs_dri_path[128];
 
 int debugfs_init(void)
 {
@@ -52,15 +54,16 @@
 		return errno;
 
 find_minor:
+	strcpy(debugfs_path, path);
 	for (n = 0; n < 16; n++) {
-		int len = sprintf(debugfs_path, "%s/dri/%d", path, n);
-		sprintf(debugfs_path + len, "/i915_error_state");
-		if (stat(debugfs_path, &st) == 0) {
-			debugfs_path[len] = '\0';
+		int len = sprintf(debugfs_dri_path, "%s/dri/%d", path, n);
+		sprintf(debugfs_dri_path + len, "/i915_error_state");
+		if (stat(debugfs_dri_path, &st) == 0) {
+			debugfs_dri_path[len] = '\0';
 			return 0;
 		}
 	}
 
-	debugfs_path[0] = '\0';
+	debugfs_dri_path[0] = '\0';
 	return ENOENT;
 }
diff --git a/overlay/debugfs.h b/overlay/debugfs.h
index 0e5ad95..8a1c60a 100644
--- a/overlay/debugfs.h
+++ b/overlay/debugfs.h
@@ -26,6 +26,8 @@
 #define DEBUGFS_H
 
 extern char debugfs_path[128];
+extern char debugfs_dri_path[128];
+
 int debugfs_init(void);
 
 #endif /* DEBUGFS_H */
diff --git a/overlay/gem-objects.c b/overlay/gem-objects.c
index 14427a7..8c8ae21 100644
--- a/overlay/gem-objects.c
+++ b/overlay/gem-objects.c
@@ -53,7 +53,7 @@
 
 	memset(obj, 0, sizeof(*obj));
 
-	sprintf(buf, "%s/i915_gem_objects", debugfs_path);
+	sprintf(buf, "%s/i915_gem_objects", debugfs_dri_path);
 	fd = open(buf, 0);
 	if (fd < 0)
 		return errno;
@@ -99,7 +99,7 @@
 	freed = obj->comm;
 	obj->comm = NULL;
 
-	sprintf(buf, "%s/i915_gem_objects", debugfs_path);
+	sprintf(buf, "%s/i915_gem_objects", debugfs_dri_path);
 	fd = open(buf, 0);
 	if (fd < 0) {
 		ret = errno;
diff --git a/overlay/gpu-freq.c b/overlay/gpu-freq.c
index b34f66f..0a400be 100644
--- a/overlay/gpu-freq.c
+++ b/overlay/gpu-freq.c
@@ -38,7 +38,7 @@
 
 	memset(gf, 0, sizeof(*gf));
 
-	sprintf(buf, "%s/i915_cur_delayinfo", debugfs_path);
+	sprintf(buf, "%s/i915_cur_delayinfo", debugfs_dri_path);
 	fd = open(buf, 0);
 	if (fd < 0)
 		return gf->error = errno;
@@ -85,7 +85,7 @@
 	if (gf->error)
 		return gf->error;
 
-	sprintf(buf, "%s/i915_cur_delayinfo", debugfs_path);
+	sprintf(buf, "%s/i915_cur_delayinfo", debugfs_dri_path);
 	fd = open(buf, 0);
 	if (fd < 0)
 		return gf->error = errno;
diff --git a/overlay/power.c b/overlay/power.c
index e69b1a1..62aba8b 100644
--- a/overlay/power.c
+++ b/overlay/power.c
@@ -42,7 +42,7 @@
 
 	memset(power, 0, sizeof(*power));
 
-	sprintf(buf, "%s/i915_energy_uJ", debugfs_path);
+	sprintf(buf, "%s/i915_energy_uJ", debugfs_dri_path);
 	fd = open(buf, 0);
 	if (fd < 0)
 		return power->error = errno;
