Module: Mesa
Branch: mesa_7_7_branch
Commit: 9f728ed1c9c7255554109299508a78b9fbb1cdb6
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f728ed1c9c7255554109299508a78b9fbb1cdb6

Author: Jakob Bornecrantz <[email protected]>
Date:   Wed Jan 20 14:53:38 2010 +0000

st/xorg: Fic bug and close drm_api at proper place

---

 src/gallium/state_trackers/xorg/xorg_driver.c |   24 +++++++++++++++++-------
 1 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c 
b/src/gallium/state_trackers/xorg/xorg_driver.c
index b74953e..2714fba 100644
--- a/src/gallium/state_trackers/xorg/xorg_driver.c
+++ b/src/gallium/state_trackers/xorg/xorg_driver.c
@@ -214,7 +214,7 @@ drv_init_drm(ScrnInfoPtr pScrn)
        if (ms->fd >= 0)
            return TRUE;
 
-       if (ms->api->destroy)
+       if (ms->api && ms->api->destroy)
            ms->api->destroy(ms->api);
 
        ms->api = NULL;
@@ -226,6 +226,21 @@ drv_init_drm(ScrnInfoPtr pScrn)
 }
 
 static Bool
+drv_close_drm(ScrnInfoPtr pScrn)
+{
+    modesettingPtr ms = modesettingPTR(pScrn);
+
+    if (ms->api && ms->api->destroy)
+       ms->api->destroy(ms->api);
+    ms->api = NULL;
+
+    drmClose(ms->fd);
+    ms->fd = -1;
+
+    return TRUE;
+}
+
+static Bool
 drv_init_resource_management(ScrnInfoPtr pScrn)
 {
     modesettingPtr ms = modesettingPTR(pScrn);
@@ -278,10 +293,6 @@ drv_close_resource_management(ScrnInfoPtr pScrn)
     }
     ms->screen = NULL;
 
-    if (ms->api && ms->api->destroy)
-       ms->api->destroy(ms->api);
-    ms->api = NULL;
-
 #ifdef HAVE_LIBKMS
     if (ms->kms)
        kms_destroy(&ms->kms);
@@ -832,8 +843,7 @@ drv_close_screen(int scrnIndex, ScreenPtr pScreen)
 
     drv_close_resource_management(pScrn);
 
-    drmClose(ms->fd);
-    ms->fd = -1;
+    drv_close_drm(pScrn);
 
     pScrn->vtSema = FALSE;
     pScreen->CloseScreen = ms->CloseScreen;

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to