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-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html