From: Linus Torvalds <torvalds@linux-foundation.org> To: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Mauro Carvalho Chehab <mchehab@redhat.com>, Mark Lord <kernel@teksavvy.com>, Linux Kernel <linux-kernel@vger.kernel.org>, linux-input@vger.kernel.org, linux-media@vger.kernel.org Subject: Re: 2.6.36/2.6.37: broken compatibility with userspace input-utils ? Date: Wed, 26 Jan 2011 07:20:07 +1000 [thread overview] Message-ID: <AANLkTiknmVaOhvhTXC_5G3m-HDrTJCyqbjOPgnUEFZpA@mail.gmail.com> (raw) In-Reply-To: <20110125210153.GB19896@core.coreip.homeip.net> On Wed, Jan 26, 2011 at 7:01 AM, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > > BTW, another issue is that evdev's ioctl returns -EINVAL for unknown > ioctls so applications would have hard time figuring out whether error > returned because of kernel being too old or because they are trying to > retrieve/establish invalid mapping if they had to go only by the error > code. So that's just another evdev interface bug. > As far as I can see EINVAL is a proper error for unknown ioctls: > > [dtor@hammer work]$ man 2 ioctl | grep EINVAL > EINVAL Request or argp is not valid. Yeah, there's some confusion there. The "unknown ioctl" error code is (for traditional reasons) ENOTTY, but yes, the EINVAL thing admittedly has a lot of legacy use too. Inside the kernel, the preferred way to say "I don't recognize that ioctl number" is actually ENOIOCTLCMD. That's exactly so that various nested ioctl handlers can then tell the difference between "I didn't recognize that ioctl" and "I understand what you asked me to do, but your arguments were crap". vfs_ioctl() will then turn ENOIOCTLCMD to EINVAL to return to user space. Linus
WARNING: multiple messages have this Message-ID (diff)
From: Linus Torvalds <torvalds@linux-foundation.org> To: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Mauro Carvalho Chehab <mchehab@redhat.com>, Mark Lord <kernel@teksavvy.com>, Linux Kernel <linux-kernel@vger.kernel.org>, linux-input@vger.kernel.org, linux-media@vger.kernel.org Subject: Re: 2.6.36/2.6.37: broken compatibility with userspace input-utils ? Date: Wed, 26 Jan 2011 07:20:07 +1000 [thread overview] Message-ID: <AANLkTiknmVaOhvhTXC_5G3m-HDrTJCyqbjOPgnUEFZpA@mail.gmail.com> (raw) In-Reply-To: <20110125210153.GB19896@core.coreip.homeip.net> On Wed, Jan 26, 2011 at 7:01 AM, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > > BTW, another issue is that evdev's ioctl returns -EINVAL for unknown > ioctls so applications would have hard time figuring out whether error > returned because of kernel being too old or because they are trying to > retrieve/establish invalid mapping if they had to go only by the error > code. So that's just another evdev interface bug. > As far as I can see EINVAL is a proper error for unknown ioctls: > > [dtor@hammer work]$ man 2 ioctl | grep EINVAL > EINVAL Request or argp is not valid. Yeah, there's some confusion there. The "unknown ioctl" error code is (for traditional reasons) ENOTTY, but yes, the EINVAL thing admittedly has a lot of legacy use too. Inside the kernel, the preferred way to say "I don't recognize that ioctl number" is actually ENOIOCTLCMD. That's exactly so that various nested ioctl handlers can then tell the difference between "I didn't recognize that ioctl" and "I understand what you asked me to do, but your arguments were crap". vfs_ioctl() will then turn ENOIOCTLCMD to EINVAL to return to user space. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-01-25 21:21 UTC|newest] Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-01-23 17:03 2.6.36/2.6.37: broken compatibility with userspace input-utils ? Mark Lord 2011-01-24 17:54 ` Dmitry Torokhov 2011-01-25 0:32 ` Mark Lord 2011-01-25 0:55 ` Dmitry Torokhov 2011-01-25 4:13 ` Mark Lord 2011-01-25 4:20 ` Dmitry Torokhov 2011-01-25 4:37 ` Mark Lord 2011-01-25 4:43 ` Mark Lord 2011-01-25 4:55 ` Dmitry Torokhov 2011-01-25 5:04 ` Mark Lord 2011-01-25 5:07 ` Mark Lord 2011-01-25 5:15 ` Mark Lord 2011-01-25 5:31 ` Dmitry Torokhov 2011-01-25 6:52 ` Dmitry Torokhov 2011-01-25 14:42 ` Extending rc-core/userspace to handle bigger scancodes - Was: " Mauro Carvalho Chehab 2011-01-25 16:55 ` Dmitry Torokhov 2011-01-26 9:44 ` Mauro Carvalho Chehab 2011-01-25 11:42 ` Mauro Carvalho Chehab 2011-01-25 14:32 ` Mark Lord 2011-01-25 16:48 ` Dmitry Torokhov 2011-01-25 20:09 ` Linus Torvalds 2011-01-25 20:54 ` Dmitry Torokhov 2011-01-25 21:01 ` Dmitry Torokhov 2011-01-25 21:20 ` Linus Torvalds [this message] 2011-01-25 21:20 ` Linus Torvalds 2011-01-25 21:50 ` Dmitry Torokhov 2011-01-25 22:00 ` Mauro Carvalho Chehab 2011-01-25 22:22 ` Mark Lord 2011-01-25 23:29 ` Dmitry Torokhov 2011-01-26 2:00 ` Dmitry Torokhov 2011-01-26 11:26 ` Mauro Carvalho Chehab 2011-01-26 13:08 ` Gerd Hoffmann 2011-01-26 14:18 ` Mauro Carvalho Chehab 2011-01-26 14:52 ` Gerd Hoffmann 2011-01-26 16:46 ` Dmitry Torokhov 2011-01-26 16:51 ` Dmitry Torokhov 2011-01-26 17:29 ` Mauro Carvalho Chehab 2011-01-26 18:24 ` Dmitry Torokhov 2011-01-26 19:16 ` Gerd Hoffmann 2011-01-26 19:28 ` Mark Lord 2011-01-26 20:09 ` Gerd Hoffmann 2011-01-26 19:28 ` Mauro Carvalho Chehab 2011-01-26 19:32 ` Dmitry Torokhov 2011-01-26 20:07 ` Gerd Hoffmann 2011-01-26 19:27 ` Mark Lord 2011-01-26 14:58 ` Mark Lord 2011-01-26 17:41 ` Mauro Carvalho Chehab 2011-01-26 17:59 ` Dmitry Torokhov 2011-01-26 19:30 ` Mark Lord 2011-01-26 15:05 ` Mark Lord 2011-01-26 16:44 ` Dmitry Torokhov 2011-01-26 19:31 ` Mark Lord 2011-01-26 19:38 ` Dmitry Torokhov 2011-01-26 17:32 ` Mauro Carvalho Chehab 2011-01-26 19:33 ` Mark Lord 2011-01-26 19:41 ` Dmitry Torokhov 2011-01-26 19:47 ` Mark Lord 2011-01-26 19:50 ` Dmitry Torokhov 2011-01-26 21:41 ` Mark Lord 2011-01-26 21:49 ` Mark Lord 2011-01-26 22:07 ` Dmitry Torokhov 2011-01-26 22:04 ` Dmitry Torokhov 2011-01-27 1:01 ` Mark Lord 2011-01-27 1:07 ` Mark Lord 2011-01-27 2:12 ` Dmitry Torokhov 2011-01-27 3:18 ` Mark Lord 2011-01-27 6:38 ` Dmitry Torokhov 2011-01-27 10:30 ` Mauro Carvalho Chehab 2011-01-27 15:00 ` Mark Lord 2011-01-27 17:21 ` Dmitry Torokhov 2011-01-27 18:58 ` Mauro Carvalho Chehab 2011-01-28 9:39 ` Dmitry Torokhov 2011-01-28 11:55 ` Mauro Carvalho Chehab 2011-01-28 16:40 ` Dmitry Torokhov 2011-01-28 17:01 ` Mauro Carvalho Chehab 2011-01-28 17:33 ` Dmitry Torokhov 2011-01-28 18:15 ` Mauro Carvalho Chehab 2011-01-28 18:34 ` Dmitry Torokhov 2011-01-28 20:53 ` Mark Lord 2011-01-27 14:54 ` Mark Lord 2011-01-27 16:39 ` Dmitry Torokhov 2011-01-27 18:12 ` Mark Lord 2011-01-27 19:53 ` Dmitry Torokhov 2011-01-28 16:42 ` Dmitry Torokhov 2011-01-28 20:55 ` Mark Lord 2011-01-28 21:03 ` Mark Lord 2011-01-28 21:09 ` Dmitry Torokhov 2011-01-25 22:25 ` Linus Torvalds 2011-01-25 5:29 ` Dmitry Torokhov 2011-01-25 14:28 ` Mark Lord 2011-02-02 14:31 ` Chase Douglas 2011-02-02 16:58 ` Dmitry Torokhov 2011-02-02 20:00 ` Chase Douglas 2011-02-02 21:54 ` Mark Lord 2011-02-02 22:04 ` Dmitry Torokhov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=AANLkTiknmVaOhvhTXC_5G3m-HDrTJCyqbjOPgnUEFZpA@mail.gmail.com \ --to=torvalds@linux-foundation.org \ --cc=dmitry.torokhov@gmail.com \ --cc=kernel@teksavvy.com \ --cc=linux-input@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=mchehab@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.