Skip to content

Commit 0d5a03c

Browse files
author
Ben Skeggs
committed
drm/nouveau/ttm: don't dereference nvbo::cli, it can outlive client
Potentially responsible for some random OOPSes. Signed-off-by: Ben Skeggs <[email protected]> Cc: [email protected] [v4.15+]
1 parent a02cbe2 commit 0d5a03c

File tree

3 files changed

+3
-6
lines changed

3 files changed

+3
-6
lines changed

drivers/gpu/drm/nouveau/nouveau_bo.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@ nouveau_bo_new(struct nouveau_cli *cli, u64 size, int align,
214214
INIT_LIST_HEAD(&nvbo->entry);
215215
INIT_LIST_HEAD(&nvbo->vma_list);
216216
nvbo->bo.bdev = &drm->ttm.bdev;
217-
nvbo->cli = cli;
218217

219218
/* This is confusing, and doesn't actually mean we want an uncached
220219
* mapping, but is what NOUVEAU_GEM_DOMAIN_COHERENT gets translated

drivers/gpu/drm/nouveau/nouveau_bo.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ struct nouveau_bo {
2626

2727
struct list_head vma_list;
2828

29-
struct nouveau_cli *cli;
30-
3129
unsigned contig:1;
3230
unsigned page:5;
3331
unsigned kind:8;

drivers/gpu/drm/nouveau/nouveau_ttm.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ nouveau_vram_manager_new(struct ttm_mem_type_manager *man,
6363
struct ttm_mem_reg *reg)
6464
{
6565
struct nouveau_bo *nvbo = nouveau_bo(bo);
66-
struct nouveau_drm *drm = nvbo->cli->drm;
66+
struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
6767
struct nouveau_mem *mem;
6868
int ret;
6969

@@ -103,7 +103,7 @@ nouveau_gart_manager_new(struct ttm_mem_type_manager *man,
103103
struct ttm_mem_reg *reg)
104104
{
105105
struct nouveau_bo *nvbo = nouveau_bo(bo);
106-
struct nouveau_drm *drm = nvbo->cli->drm;
106+
struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
107107
struct nouveau_mem *mem;
108108
int ret;
109109

@@ -131,7 +131,7 @@ nv04_gart_manager_new(struct ttm_mem_type_manager *man,
131131
struct ttm_mem_reg *reg)
132132
{
133133
struct nouveau_bo *nvbo = nouveau_bo(bo);
134-
struct nouveau_drm *drm = nvbo->cli->drm;
134+
struct nouveau_drm *drm = nouveau_bdev(bo->bdev);
135135
struct nouveau_mem *mem;
136136
int ret;
137137

0 commit comments

Comments
 (0)