summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Slusarz <marcin.slusarz@gmail.com>2011-11-11 20:45:08 +0100
committerMarcin Slusarz <marcin.slusarz@gmail.com>2011-12-11 17:00:42 +0100
commit237d6fa97a3c94b1ffb9d0ce230b8c7b95fccae4 (patch)
tree1756dbf05dbd11bc8775fad05608e6f3569c7811
parent0e9b79c22a53efb8413ba6b4e49085a08221a5d3 (diff)
nv50/nvc0: fix crash when channel allocation fails
-rw-r--r--src/gallium/drivers/nv50/nv50_screen.c3
-rw-r--r--src/gallium/drivers/nvc0/nvc0_screen.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c
index 4fcf52978ad..f176a868b20 100644
--- a/src/gallium/drivers/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nv50/nv50_screen.c
@@ -215,7 +215,8 @@ nv50_screen_destroy(struct pipe_screen *pscreen)
nouveau_fence_wait(screen->base.fence.current);
nouveau_fence_ref (NULL, &screen->base.fence.current);
}
- screen->base.channel->user_private = NULL;
+ if (screen->base.channel)
+ screen->base.channel->user_private = NULL;
nouveau_bo_ref(NULL, &screen->code);
nouveau_bo_ref(NULL, &screen->tls_bo);
diff --git a/src/gallium/drivers/nvc0/nvc0_screen.c b/src/gallium/drivers/nvc0/nvc0_screen.c
index 0946fd7e27b..43eb6ce5bb5 100644
--- a/src/gallium/drivers/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nvc0/nvc0_screen.c
@@ -202,7 +202,8 @@ nvc0_screen_destroy(struct pipe_screen *pscreen)
nouveau_fence_wait(screen->base.fence.current);
nouveau_fence_ref(NULL, &screen->base.fence.current);
}
- screen->base.channel->user_private = NULL;
+ if (screen->base.channel)
+ screen->base.channel->user_private = NULL;
nouveau_bo_ref(NULL, &screen->text);
nouveau_bo_ref(NULL, &screen->tls);