lkml.org 
[lkml]   [2004]   [Mar]   [18]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateThu, 18 Mar 2004 08:17:55 +0100
FromVojtech Pavlik <>
SubjectRe: XFree86 seems to be being wrongly accused of doing the wrong thing
On Thu, Mar 18, 2004 at 03:56:35AM -0300, Frédéric L. W. Meunier wrote:

> Wrongly ? I don't think so, as it has presumably been fixed in
> XFree86 after 4.4.0.
> 
> http://www.xfree86.org/cvs/changes.html:
> 
> 6. Do the Linux KDKBDREP ioctl on the correct fd.  This
> prevents the fallback that tries to directly program the
> keyboard repeat rate, and the related warning messages that
> recent Linux kernels generate (David Dawes).
> 
> I'm attaching the patch I extracted from CVS.
> 
> Vojtech, what about adding such information to your HOWTO ? And
> better, adding the URL to atkbd.c, so people stop reporting it.

I'll add the info and the URL into the HOWTO and kill the message.

> On Thu, 18 Mar 2004, Peter Williams wrote:
> 
> > With 2.6.4 I'm getting the following messages very early in the boot
> > long before XFree86 is started:
> >
> > Mar 18 16:05:31 mudlark kernel: atkbd.c: Unknown key released
> > (translated set 2, code 0x7a on isa0060/serio0).
> > Mar 18 16:05:31 mudlark kernel: atkbd.c: This is an XFree86 bug. It
> > shouldn't access hardware directly.
> >
> > They are repeated 6 times and are NOT the result of any keys being
> > pressed or released.
> 
> -- 
> http://www.pervalidus.net/contact.html
> Index: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c
> diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c:3.26 xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c:3.27
> --- xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c:3.26	Mon Nov 17 22:20:41 2003
> +++ xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c	Wed Mar  3 18:53:41 2004
> @@ -1,4 +1,4 @@
> -/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c,v 3.26 2003/11/17 22:20:41 dawes Exp $ */
> +/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c,v 3.27 2004/03/03 18:53:41 dawes Exp $ */
>  /*
>   * Copyright 1992 by Orest Zborowski <obz@Kodak.com>
>   * Copyright 1993 by David Dawes <dawes@xfree86.org>
> @@ -81,7 +81,7 @@
>  #endif
> 
>  static int
> -KDKBDREP_ioctl_ok(int rate, int delay) {
> +KDKBDREP_ioctl_ok(int fd, int rate, int delay) {
>  #if defined(KDKBDREP) && !defined(__sparc__)
>       /* This ioctl is defined in <linux/kd.h> but is not
>  	implemented anywhere - must be in some m68k patches. */
> @@ -90,7 +90,7 @@
>     /* don't change, just test */
>     kbdrep_s.rate = -1;
>     kbdrep_s.delay = -1;
> -   if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
> +   if (ioctl( fd, KDKBDREP, &kbdrep_s )) {
>         return 0;
>     }
> 
> @@ -105,7 +105,7 @@
>     if (kbdrep_s.delay < 1)
>       kbdrep_s.delay = 1;
> 
> -   if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
> +   if (ioctl( fd, KDKBDREP, &kbdrep_s )) {
>       return 0;
>     }
> 
> @@ -174,7 +174,7 @@
>      delay = xf86Info.kbdDelay;
> 
> 
> -  if(KDKBDREP_ioctl_ok(rate, delay)) 	/* m68k? */
> +  if(KDKBDREP_ioctl_ok(xf86Info.consoleFd, rate, delay)) 	/* m68k? */
>      return;
> 
>    if(KIOCSRATE_ioctl_ok(rate, delay))	/* sparc? */
> Index: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c
> diff -u xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c:1.5 xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c:1.6
> --- xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c:1.5	Tue Nov  4 03:14:39 2003
> +++ xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c	Wed Mar  3 18:53:41 2004
> @@ -1,4 +1,4 @@
> -/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c,v 1.5 2003/11/04 03:14:39 tsi Exp $ */
> +/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c,v 1.6 2004/03/03 18:53:41 dawes Exp $ */
> 
>  /*
>   * Copyright (c) 2002 by The XFree86 Project, Inc.
> @@ -108,7 +108,7 @@
>  #endif
> 
>  static int
> -KDKBDREP_ioctl_ok(int rate, int delay) {
> +KDKBDREP_ioctl_ok(int fd, int rate, int delay) {
>  #if defined(KDKBDREP) && !defined(__sparc__)
>       /* This ioctl is defined in <linux/kd.h> but is not
>  	implemented anywhere - must be in some m68k patches. */
> @@ -117,7 +117,7 @@
>     /* don't change, just test */
>     kbdrep_s.rate = -1;
>     kbdrep_s.delay = -1;
> -   if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
> +   if (ioctl( fd, KDKBDREP, &kbdrep_s )) {
>         return 0;
>     }
> 
> @@ -132,7 +132,7 @@
>     if (kbdrep_s.delay < 1)
>       kbdrep_s.delay = 1;
> 
> -   if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
> +   if (ioctl( fd, KDKBDREP, &kbdrep_s )) {
>       return 0;
>     }
> 
> @@ -200,7 +200,7 @@
>    if (pKbd->delay >= 0)
>      delay = pKbd->delay;
> 
> -  if(KDKBDREP_ioctl_ok(rate, delay)) 	/* m68k? */
> +  if(KDKBDREP_ioctl_ok(pInfo->fd, rate, delay)) 	/* m68k? */
>      return;
> 
>    if(KIOCSRATE_ioctl_ok(rate, delay))	/* sparc? */


-- 
Vojtech Pavlik
SuSE Labs, SuSE CR
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:01    [from the cache]
©2003-2008