Mesa (mesa_7_7_branch): st/xorg: Fic bug and close drm_api at proper place
Jakob Bornecrantz
wallbraker at kemper.freedesktop.org
Wed Jan 20 14:53:28 UTC 2010
Module: Mesa
Branch: mesa_7_7_branch
Commit: 9f728ed1c9c7255554109299508a78b9fbb1cdb6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f728ed1c9c7255554109299508a78b9fbb1cdb6
Author: Jakob Bornecrantz <jakob at vmware.com>
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;
More information about the mesa-commit
mailing list