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

Author: Marcin Slusarz <marcin.slus...@gmail.com>
Date:   Mon Aug 23 22:40:58 2010 +0200

nouveau: handle early initialization errors

handle very early errors in pipe_screen creation (failure of
nouveau_screen_init in nv50_screen_create)

Signed-off-by: Francisco Jerez <curroje...@riseup.net>

---

 src/gallium/drivers/nouveau/nouveau_screen.c       |    3 ++-
 .../winsys/nouveau/drm/nouveau_drm_winsys.c        |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nouveau_screen.c 
b/src/gallium/drivers/nouveau/nouveau_screen.c
index 513e5e0..ebb21a6 100644
--- a/src/gallium/drivers/nouveau/nouveau_screen.c
+++ b/src/gallium/drivers/nouveau/nouveau_screen.c
@@ -258,6 +258,7 @@ nouveau_screen_fini(struct nouveau_screen *screen)
 {
        struct pipe_winsys *ws = screen->base.winsys;
        nouveau_channel_free(&screen->channel);
-       ws->destroy(ws);
+       if (ws)
+               ws->destroy(ws);
 }
 
diff --git a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c 
b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
index 660dbd0..d4bf124 100644
--- a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
+++ b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
@@ -19,7 +19,8 @@ nouveau_drm_destroy_winsys(struct pipe_winsys *s)
 {
        struct nouveau_winsys *nv_winsys = nouveau_winsys(s);
        struct nouveau_screen *nv_screen= nouveau_screen(nv_winsys->pscreen);
-       nouveau_device_close(&nv_screen->device);
+       if (nv_screen)
+               nouveau_device_close(&nv_screen->device);
        FREE(nv_winsys);
 }
 

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to