Commit 1b93f3e8 authored by Danilo Krummrich's avatar Danilo Krummrich
Browse files

drm/nouveau: prime: fix refcount underflow



Calling nouveau_bo_ref() on a nouveau_bo without initializing it (and
hence the backing ttm_bo) leads to a refcount underflow.

Instead of calling nouveau_bo_ref() in the unwind path of
drm_gem_object_init(), clean things up manually.

Fixes: ab9ccb96 ("drm/nouveau: use prime helpers")
Reviewed-by: default avatarBen Skeggs <bskeggs@nvidia.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarDanilo Krummrich <dakr@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240718165959.3983-2-dakr@kernel.org
parent d4b9b6da
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -64,7 +64,8 @@ struct drm_gem_object *nouveau_gem_prime_import_sg_table(struct drm_device *dev,
	 * to the caller, instead of a normal nouveau_bo ttm reference. */
	ret = drm_gem_object_init(dev, &nvbo->bo.base, size);
	if (ret) {
		nouveau_bo_ref(NULL, &nvbo);
		drm_gem_object_release(&nvbo->bo.base);
		kfree(nvbo);
		obj = ERR_PTR(-ENOMEM);
		goto unlock;
	}