projects
/
linux-2.6-microblaze.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
12c35c5
)
drm/nouveau: prime: fix refcount underflow
author
Danilo Krummrich
<dakr@kernel.org>
Thu, 18 Jul 2024 16:58:46 +0000
(18:58 +0200)
committer
Danilo Krummrich
<dakr@kernel.org>
Mon, 22 Jul 2024 20:53:38 +0000
(22:53 +0200)
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:
ab9ccb96a6e6
("drm/nouveau: use prime helpers")
Reviewed-by: Ben Skeggs <bskeggs@nvidia.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Link:
https://patchwork.freedesktop.org/patch/msgid/20240718165959.3983-2-dakr@kernel.org
(cherry picked from commit
1b93f3e89d03cfc576636e195466a0d728ad8de5
)
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
drivers/gpu/drm/nouveau/nouveau_prime.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/nouveau/nouveau_prime.c
b/drivers/gpu/drm/nouveau/nouveau_prime.c
index
b58ab59
..
cd95446
100644
(file)
--- a/
drivers/gpu/drm/nouveau/nouveau_prime.c
+++ b/
drivers/gpu/drm/nouveau/nouveau_prime.c
@@
-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;
}