Summary: | failure to release release input lock in xf86dga | ||
---|---|---|---|
Product: | xorg | Reporter: | Jan Lepper <jan_lepper> |
Component: | * Other | Assignee: | Xorg Project Team <xorg-team> |
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | normal | ||
Priority: | high | ||
Version: | git | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Jan Lepper
2006-10-17 02:31:40 UTC
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future. What? Version 1 didn't have an input API: % nm -aD --defined /usr/lib/libXxf86dga.so | grep XF86DGA 00870690 T XF86DGADirectVideo 008705a0 T XF86DGADirectVideoLL 008707f0 T XF86DGAForkApp 00870b10 T XF86DGAGetVidPage 00870ed0 T XF86DGAGetVideo 00870d80 T XF86DGAGetVideoLL 00870c40 T XF86DGAGetViewPortSize 008702d0 T XF86DGAInstallColormap 008709e0 T XF86DGAQueryDirectVideo 00871310 T XF86DGAQueryExtension 008712d0 T XF86DGAQueryVersion 008703c0 T XF86DGASetVidPage 008704b0 T XF86DGASetViewPort 008708b0 T XF86DGAViewPortChanged None of that has anything to do with input. (In reply to comment #2) > What? Version 1 didn't have an input API: > > % nm -aD --defined /usr/lib/libXxf86dga.so | grep XF86DGA > 00870690 T XF86DGADirectVideo > 008705a0 T XF86DGADirectVideoLL > 008707f0 T XF86DGAForkApp > 00870b10 T XF86DGAGetVidPage > 00870ed0 T XF86DGAGetVideo > 00870d80 T XF86DGAGetVideoLL > 00870c40 T XF86DGAGetViewPortSize > 008702d0 T XF86DGAInstallColormap > 008709e0 T XF86DGAQueryDirectVideo > 00871310 T XF86DGAQueryExtension > 008712d0 T XF86DGAQueryVersion > 008703c0 T XF86DGASetVidPage > 008704b0 T XF86DGASetViewPort > 008708b0 T XF86DGAViewPortChanged > > None of that has anything to do with input. > This is a bit late, as i was busy with other things - anyway i reopen this bug since it is not invalid as you claimed. Reason: Despite not having "input" in its name, XF86DGADirectVideo also deals with input: xorg/xserver/hw/xfree86/dixmods/extmod/xf86dga.c: [...] static int ProcXF86DGADirectVideo(ClientPtr client) { int num; PixmapPtr pix; XDGAModeRec mode; REQUEST(xXF86DGADirectVideoReq); if (stuff->screen > screenInfo.numScreens) return BadValue; REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq); if (!DGAAvailable(stuff->screen)) return DGAErrorBase + XF86DGANoDirectVideoMode; if (stuff->enable & XF86DGADirectGraphics) { if(!(num = DGAGetOldDGAMode(stuff->screen))) return (DGAErrorBase + XF86DGANoDirectVideoMode); } else num = 0; if(Success != DGASetMode(stuff->screen, num, &mode, &pix)) return (DGAErrorBase + XF86DGAScreenNotActive); DGASetInputMode (stuff->screen, (stuff->enable & XF86DGADirectKeyb) != 0, (stuff->enable & XF86DGADirectMouse) != 0); return (client->noClientException); } [...] xorg/xserver/hw/xfree86/common/xf86DGA.c: [...] _X_EXPORT void DGASetInputMode(int index, Bool keyboard, Bool mouse) { ScreenPtr pScreen = screenInfo.screens[index]; DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen); if (pScreenPriv) { pScreenPriv->grabMouse = mouse; pScreenPriv->grabKeyboard = keyboard; if (!mieq_installed) { mieqSetHandler(*XDGAEventBase + MotionNotify, DGAHandleEvent); mieqSetHandler(*XDGAEventBase + ButtonPress, DGAHandleEvent); mieqSetHandler(*XDGAEventBase + ButtonRelease, DGAHandleEvent); mieqSetHandler(*XDGAEventBase + KeyPress, DGAHandleEvent); mieqSetHandler(*XDGAEventBase + KeyRelease, DGAHandleEvent); mieq_installed = 1; } } } [...] As you can see, the client is able to grab both keyboard and mouse. Should be fixed as of xserver 1.6. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.