Mesa (master): nv30: avoid setting user_priv without setting cur_ctx

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Dec 31 05:49:21 UTC 2018


Module: Mesa
Branch: master
Commit: ef3eac954574d630593012369ba309210158b760
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef3eac954574d630593012369ba309210158b760

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Wed Dec 26 22:58:54 2018 -0500

nv30: avoid setting user_priv without setting cur_ctx

The whole user_priv thing is a mess, but as long as it's there, it
basically has to map 1:1 to the cur_ctx. Unfortunately we were setting
user_priv to some context, then that context could get deleted without
any draws/validations in it, leading user_priv to become NULL, with
cur_ctx still pointing at some old context. Then we wouldn't run the
switch logic, which in turn led to a NULL bufctx being dereferenced.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102349
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 src/gallium/drivers/nouveau/nv30/nv30_context.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nv30/nv30_context.c b/src/gallium/drivers/nouveau/nv30/nv30_context.c
index e137525c2b..853db925b7 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_context.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_context.c
@@ -221,9 +221,7 @@ nv30_context_create(struct pipe_screen *pscreen, void *priv, unsigned ctxflags)
    /*XXX: *cough* per-context pushbufs */
    push = screen->base.pushbuf;
    nv30->base.pushbuf = push;
-   nv30->base.pushbuf->user_priv = &nv30->bufctx; /* hack at validate time */
-   nv30->base.pushbuf->rsvd_kick = 16; /* hack in screen before first space */
-   nv30->base.pushbuf->kick_notify = nv30_context_kick_notify;
+   push->kick_notify = nv30_context_kick_notify;
 
    nv30->base.invalidate_resource_storage = nv30_invalidate_resource_storage;
 




More information about the mesa-commit mailing list