Re: 2.6.36/2.6.37: broken compatibility with userspace input-utils ?

Dmitry Torokhov
2011-01-27T06:38:25Z

On Wed, Jan 26, 2011 at 10:18:53PM -0500, Mark Lord wrote:
> On 11-01-26 09:12 PM, Dmitry Torokhov wrote:
> > On Wed, Jan 26, 2011 at 08:07:29PM -0500, Mark Lord wrote:
> >> On 11-01-26 08:01 PM, Mark Lord wrote:
> >>> On 11-01-26 10:05 AM, Mark Lord wrote:
> >>>> On 11-01-25 09:00 PM, Dmitry Torokhov wrote:
> >>> ..
> >>>>> I wonder if the patch below is all that is needed...
> >>>>
> >>>> Nope. Does not work here:
> >>>>
> >>>> $ lsinput
> >>>> protocol version mismatch (expected 65536, got 65537)
> >>>>
> >>>
> >>> Heh.. I just noticed something *new* in the bootlogs on my system:
> >>>
> >>> kernel: Registered IR keymap rc-rc5-tv
> >>> udevd-event[6438]: run_program: '/usr/bin/ir-keytable' abnormal exit
> >>> kernel: input: i2c IR (Hauppauge) as /devices/virtual/rc/rc0/input7
> >>> kernel: ir-keytable[6439]: segfault at 8 ip 00000000004012d2 sp 00007fff6d43ca60
> >>> error 4 in ir-keytable[400000+7000]
> >>> kernel: rc0: i2c IR (Hauppauge) as /devices/virtual/rc/rc0
> >>> kernel: ir-kbd-i2c: i2c IR (Hauppauge) detected at i2c-0/0-0018/ir0 [ivtv i2c
> >>> driver #0]
> >>>
> >>> That's udev invoking ir-keyboard when the ir-kbd-i2c kernel module is loaded,
> >>> and that is also ir-keyboard (userspace) segfaulting when run.
> >>
> >> Note: I tried to capture an strace of ir-keyboard segfaulting during boot
> >> (as above), but doing so kills the system (hangs on boot).
> >>
> >> The command from udev was: /usr/bin/ir-keytable -a /etc/rc_maps.cfg -s rc0
> >
> > Does it die when you try to invoke the command by hand? Can you see where?
>
>
> No, it does not seem to segfault when I unload/reload ir-kbd-i2c
> and then invoke it by hand with the same parameters.
> Quite possibly the environment is different when udev invokes it,
> and my strace attempt with udev killed the system, so no info there.
>
> It does NOT segfault on the stock 2.6.37 kernel, without the patch.

I must admit I am baffled. The patch in question only affects the
EVIOCGKEYCODE path whereas '-a' means "automatically load appropriate
keymap" and as far as I can see it does not call EVIOCGKEYCODE, only
EVIOCSKEYCODE...

Mauro, any ideas?

BTW, I wonder what package ir-keytable is coming from? Ubuntu seems to
have v4l-utils at 0.8.1-2 and you say yours is 0.8.2...

Thanks.

--
Dmitry