Commit a909c6bd authored by Monk Liu's avatar Monk Liu Committed by Alex Deucher
Browse files

drm/amdgpu: fix ring debugfs bug



debugfs file added but not released after driver unloaded

Signed-off-by: default avatarMonk Liu <Monk.Liu@amd.com>
Reviewed-by: default avatarChunming Zhou <david1.zhou@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c71dbd93
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -798,6 +798,9 @@ struct amdgpu_ring {
	unsigned		cond_exe_offs;
	u64				cond_exe_gpu_addr;
	volatile u32	*cond_exe_cpu_addr;
#if defined(CONFIG_DEBUG_FS)
	struct dentry *ent;
#endif
};

/*
+10 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@
 */
static int amdgpu_debugfs_ring_init(struct amdgpu_device *adev,
				    struct amdgpu_ring *ring);
static void amdgpu_debugfs_ring_fini(struct amdgpu_ring *ring);

/**
 * amdgpu_ring_alloc - allocate space on the ring buffer
@@ -362,6 +363,7 @@ void amdgpu_ring_fini(struct amdgpu_ring *ring)
		}
		amdgpu_bo_unref(&ring_obj);
	}
	amdgpu_debugfs_ring_fini(ring);
}

/*
@@ -445,6 +447,14 @@ static int amdgpu_debugfs_ring_init(struct amdgpu_device *adev,
		return PTR_ERR(ent);

	i_size_write(ent->d_inode, ring->ring_size + 12);
	ring->ent = ent;
#endif
	return 0;
}

static void amdgpu_debugfs_ring_fini(struct amdgpu_ring *ring)
{
#if defined(CONFIG_DEBUG_FS)
	debugfs_remove(ring->ent);
#endif
}