[PATCH] drm/ttm: allow debugfs_create_file() to fail in ttm_global_init()

From: lnx7586
Date: Mon Aug 16 2021 - 10:51:32 EST


From: Greg Depoire--Ferrer <lnx7586@xxxxxxxxxx>

Commit 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()")
unintentionally made ttm_global_init() return early with an error when
debugfs_create_file() fails. When CONFIG_DEBUG_FS is disabled,
debugfs_create_file() returns a ENODEV error so the TTM device would fail
to initialize.

Instead of returning early with the error, print it and continue. ENODEV
can be ignored because it just means that CONFIG_DEBUG_FS is disabled.

Fixes: 69de4421bb4c ("drm/ttm: Initialize debugfs from ttm_global_init()")
Reported-by: Mikael Pettersson <mikpelinux@xxxxxxxxx>
Reported-by: Duncan <j.duncan@xxxxxxx>
Signed-off-by: Greg Depoire--Ferrer <lnx7586@xxxxxxxxxx>
---
Hi, I had this bug as well with the nouveau driver after updating. This
patch fixes it for me.

drivers/gpu/drm/ttm/ttm_device.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_device.c b/drivers/gpu/drm/ttm/ttm_device.c
index 74e3b460132b..12b73979c798 100644
--- a/drivers/gpu/drm/ttm/ttm_device.c
+++ b/drivers/gpu/drm/ttm/ttm_device.c
@@ -69,6 +69,7 @@ static int ttm_global_init(void)
unsigned long num_pages, num_dma32;
struct sysinfo si;
int ret = 0;
+ int tmp;

mutex_lock(&ttm_global_mutex);
if (++ttm_glob_use_count > 1)
@@ -78,9 +79,9 @@ static int ttm_global_init(void)

ttm_debugfs_root = debugfs_create_dir("ttm", NULL);
if (IS_ERR(ttm_debugfs_root)) {
- ret = PTR_ERR(ttm_debugfs_root);
- ttm_debugfs_root = NULL;
- goto out;
+ tmp = PTR_ERR(ttm_debugfs_root);
+ if (tmp != -ENODEV)
+ pr_err("failed to create debugfs: %d", tmp);
}

/* Limit the number of pages in the pool to about 50% of the total
--
2.31.1