diff options
author | Thomas Hellstrom <unichrome@shipmail.org> | 2004-03-21 18:49:04 +0000 |
---|---|---|
committer | Thomas Hellstrom <unichrome@shipmail.org> | 2004-03-21 18:49:04 +0000 |
commit | 1e0597209487403b85c6e521f1d57821658482bf (patch) | |
tree | 0534249879f15f378fdc2c1166bb71cb8cd1351f | |
parent | 7299f048ee48f5a287c3129713f93665276e583b (diff) |
Final (?) fix of bug reported by Huynh Tran. The server probably called
drmRmMap on non-existing maps when it exited. This probably caused a
total machine lockup. :-(
-rw-r--r-- | src/via_driver.c | 7 | ||||
-rw-r--r-- | src/via_xvmc.c | 4 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/via_driver.c b/src/via_driver.c index 17bdb88..aef5cb4 100644 --- a/src/via_driver.c +++ b/src/via_driver.c @@ -305,6 +305,8 @@ static const char *drmSymbols[] = { "drmRmMap", "drmCreateContext", "drmAuthMagic", + "drmDestroyContext", + "drmSetContextFlags", NULL }; @@ -318,6 +320,8 @@ static const char *driSymbols[] = { "DRIQueryVersion", "DRIScreenInit", "DRIUnlock", + "DRIOpenConnection", + "DRICloseConnection", "GlxSetVisualConfigs", NULL }; @@ -2552,8 +2556,7 @@ static Bool VIAScreenInit(int scrnIndex, ScreenPtr pScreen, viaInitVideo(pScreen); #ifdef XF86DRI pVia->XvMCEnabled = 0; - if (pVia->Chipset == VIA_CLE266) - ViaInitXVMC(pScreen); + ViaInitXVMC(pScreen); #endif viaInitV4L(pScrn); } diff --git a/src/via_xvmc.c b/src/via_xvmc.c index 99dc6ec..d084812 100644 --- a/src/via_xvmc.c +++ b/src/via_xvmc.c @@ -309,7 +309,7 @@ void ViaInitXVMC(ScreenPtr pScreen) initViaXvMC(vXvMC); - if (! xf86XvMCScreenInit(pScreen, 1, ppAdapt)) { + if (! xf86XvMCScreenInit(pScreen, 1, ppAdapt)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[XvMC] XvMCScreenInit failed.\n"); drmRmMap(pVia->drmFD,vXvMC->mmioBase); drmRmMap(pVia->drmFD,vXvMC->fbBase); @@ -332,7 +332,7 @@ void ViaCleanupXVMC(ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; VIAPtr pVia = VIAPTR(pScrn); ViaXvMCPtr vXvMC = &(pVia->xvmc); - + if (pVia->XvMCEnabled) { mpegDisable(pVia,0); drmRmMap(pVia->drmFD,vXvMC->mmioBase); |