Bug 35611

Summary: Can't change bell parameters (xset b)
Product: xorg Reporter: Bryan Henderson <bryanh>
Component: Server/GeneralAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED DUPLICATE QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: 7.5 (2009.10)   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Bryan Henderson 2011-03-23 20:21:18 UTC
There is a simple typo in xorg-server-1.7.1 that prevents some bell parameter changes from having effect.

ProcChangeKeyboardControl() fails to copy the master setting to the slave.  Because of a separate problem where the server rings the bell through both the master and the slave, and on x86, it's the same physical bell, the slave action often just overrides the master.

Bug 25801 is not this.  There is something more basic wrong with the way bells work in the master/slave world, but this one is just an isolated coding error.

--- xorg-server-1.7.1/dix/devices.c     2009-10-23 04:53:21.000000000 +0000
+++ xorg-server/dix/devices.c   2011-03-05 22:51:37.000000000 +0000
@@ -1940,7 +1940,7 @@
     }

     for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
-        if ((pDev == keyboard || (!IsMaster(keyboard) && pDev->u.master == key\
board)) &&
+        if ((pDev == keyboard || (!IsMaster(pDev) && pDev->u.master == keyboar\
d)) &&
             pDev->kbdfeed && pDev->kbdfeed->CtrlProc) {
             ret = DoChangeKeyboardControl(client, pDev, vlist, vmask);
             if (ret != Success)
Comment 1 Alan Coopersmith 2011-03-24 07:24:12 UTC
Already fixed last year:
http://cgit.freedesktop.org/xorg/xserver/commit/?id=968a79dcf5e17ac3963953ef56b8f94dbd75323b

*** This bug has been marked as a duplicate of bug 27926 ***

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.