Hi Clemens, Thanks for your clarification.
2015-07-06 16:37 GMT+09:00 Clemens Ladisch <clem...@ladisch.de>: > Masahiro Yamada wrote: >> I noticed many drivers return -ENOTSUPP on error. >> >> I assume ENOTSUPP is defined in include/linux/errno.h >> as follows: >> >> /* Defined for the NFSv3 protocol */ >> ... >> #define ENOTSUPP 524 /* Operation is not supported */ >> >> If so, should ENOTSUPP be only used for NFS-related errors? > > There is typcially no such restriction. Maybe, shoulld such a confusing comment be deleted? > However, the problem with ENOTSUPP is that it is not defined in > the uapi header, so it will not be known to user space programs. > >> In fact, ENOTSUPP is used by various drivers >> including non-network ones such as pinctrl, USB, etc. > > If it is possible that the error code shows up for user space, ENOTSUPP > should not be used. Alternatives would be something like ENOTSUP, > EOPNOTSUPP, ENOIOCTLCMD, ENOSYS, or EINVAL. > Oh dear, we have ENOTSUP as well as ENOTSUPP... but, it looks like ENOTSUP is only defined by arch/parisc/include/uapi/asm/errno.h, so it is not globally available. EOPNOTSUPP is also accompanied with a comment that implies it is intended for network. After all, I often use EINVAL when unsupported operations are requested. -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/