On Fri, Jan 22, 2016 at 3:30 PM, Jiri Kosina <jikos@xxxxxxxxxx> wrote: > On Thu, 21 Jan 2016, Dmitry Torokhov wrote: > >> On Thu, Jan 21, 2016 at 6:18 AM, Jiri Kosina <jikos@xxxxxxxxxx> wrote: >> > On Wed, 20 Jan 2016, Heiner Kallweit wrote: >> > >> >> Primary meaning of ENOSYS is "system call not available" but it's also used >> >> with meaning "function not implemented". Both are not applicable here. >> >> >> >> Typically this error occurs when the device was unplugged. >> >> usbhid_raw_request returns -ENODEV in such a case what seems to be more >> >> reasonable. Therefore use -ENODEV also here. >> >> >> >> Primary motivation for this change is a change in the LED subsystem to >> >> ignore -ENODEV if the device was most likely unplugged. >> > >> > I believe POSIX defines ENOSYS as "Function not implemented". In this >> > case, we are signalling there is no "URB OUT" function. >> > >> >> Well, it looks like ENOSYS is really reserved for unimplemented system calls: >> >> commit 91c9afaf97ee554d2cd3042a5ad01ad21c99e8c4 >> Author: Andy Lutomirski <luto@xxxxxxxxxxxxxx> >> Date: Thu Apr 16 12:44:44 2015 -0700 >> >> checkpatch.pl: new instances of ENOSYS are errors >> >> ENOSYS means that a nonexistent system call was called. We have a >> bad habit of using it for things like invalid operations on >> otherwise valid syscalls. We should avoid this in new code. >> >> Pervasive incorrect usage of ENOSYS came up at the kernel summit ABI >> review discussion. Let's see if checkpatch can help. >> >> I'll submit a separate patch for include/uapi/asm-generic/errno.h. > > Let's add Andy to CC. > > Andy, my understanding of POSIX is that ENOSYS is "function not > implemented", meaning whatever internal function of kernel, not strictly > just syscall entrypoint. > > Where does your explanation of ENOSYS as "syscall not implemented" come > from, please? > Userspace likes to be able to tell whether a given syscall is implemented by the running kernel. Unimplemented syscalls return -ENOSYS, and having syscalls that *are* implemented return -ENOSYS can confuse things. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html