[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110126182415.GB29268@core.coreip.homeip.net>
Date: Wed, 26 Jan 2011 10:24:15 -0800
From: Dmitry Torokhov <dmitry.torokhov@...il.com>
To: Mauro Carvalho Chehab <mchehab@...hat.com>
Cc: Gerd Hoffmann <kraxel@...hat.com>, Mark Lord <kernel@...savvy.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Linux Kernel <linux-kernel@...r.kernel.org>,
linux-input@...r.kernel.org, linux-media@...r.kernel.org
Subject: Re: 2.6.36/2.6.37: broken compatibility with userspace input-utils ?
On Wed, Jan 26, 2011 at 03:29:09PM -0200, Mauro Carvalho Chehab wrote:
> Em 26-01-2011 14:51, Dmitry Torokhov escreveu:
> > On Wed, Jan 26, 2011 at 12:18:29PM -0200, Mauro Carvalho Chehab wrote:
> >> diff --git a/input.c b/input.c
> >> index d57a31e..a9bd5e8 100644
> >> --- a/input.c
> >> +++ b/input.c
> >> @@ -101,8 +101,8 @@ int device_open(int nr, int verbose)
> >> close(fd);
> >> return -1;
> >> }
> >> - if (EV_VERSION != version) {
> >> - fprintf(stderr, "protocol version mismatch (expected %d, got %d)\n",
> >> + if (EV_VERSION > version) {
> >> + fprintf(stderr, "protocol version mismatch (expected >= %d, got %d)\n",
> >> EV_VERSION, version);
> >
> > Please do not do this. It causes check to "float" depending on the
> > version of kernel headers it was compiled against.
> >
> > The check should be against concrete version (0x10000 in this case).
>
> The idea here is to not prevent it to load if version is 0x10001.
> This is actually the only change that it is really needed (after applying
> your KEY_RESERVED patch to 2.6.37) for the tool to work. Reverting it causes
> the error:
You did not understand. When comparing against EV_VERSION, if you
compile on 2.6.32 you are comparing with 0x10000. If you are compiling
on 2.6.37 you are comparing with 0x10001 as EV_VERSION value changes
(not the value returned by EVIOCGVERSION, the value of the _define_
itself).
The proper check is:
#define EVDEV_MIN_VERSION 0x10000
if (version < EVDEV_MIN_VERSION) {
fprintf(stderr,
"protocol version mismatch (need at least %d, got %d)\n",
EVDEV_MIN_VERSION, version);
...
}
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists