Mesa (nvc0): nvc0: fix a crash on context destruction

Ben Skeggs darktama at kemper.freedesktop.org
Tue Mar 1 07:25:14 UTC 2011


Module: Mesa
Branch: nvc0
Commit: 28eb7214db3387eb55109273317a308617341a3f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=28eb7214db3387eb55109273317a308617341a3f

Author: Ben Skeggs <bskeggs at redhat.com>
Date:   Tue Mar  1 17:08:03 2011 +1000

nvc0: fix a crash on context destruction

Signed-off-by: Ben Skeggs <bskeggs at redhat.com>

---

 src/gallium/drivers/nvc0/nvc0_context.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nvc0/nvc0_context.c b/src/gallium/drivers/nvc0/nvc0_context.c
index d5dcf1f..d6de979 100644
--- a/src/gallium/drivers/nvc0/nvc0_context.c
+++ b/src/gallium/drivers/nvc0/nvc0_context.c
@@ -62,8 +62,10 @@ nvc0_destroy(struct pipe_context *pipe)
 
    draw_destroy(nvc0->draw);
 
-   if (nvc0->screen->cur_ctx == nvc0)
+   if (nvc0->screen->cur_ctx == nvc0) {
+      nvc0->screen->base.channel->user_private = NULL;
       nvc0->screen->cur_ctx = NULL;
+   }
 
    FREE(nvc0);
 }
@@ -73,8 +75,10 @@ nvc0_default_flush_notify(struct nouveau_channel *chan)
 {
    struct nvc0_context *nvc0 = chan->user_private;
 
-   nouveau_fence_update(&nvc0->screen->base, TRUE);
+   if (!nvc0)
+      return;
 
+   nouveau_fence_update(&nvc0->screen->base, TRUE);
    nouveau_fence_next(&nvc0->screen->base);
 }
 




More information about the mesa-commit mailing list