[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAK7LNAQWapgFUZ7H_x=vYFqcc_AJks11nDO_Jx7C=GQR4+WeaQ@mail.gmail.com>
Date: Tue, 7 Jul 2015 01:25:09 +0900
From: Masahiro Yamada <yamada.masahiro@...ionext.com>
To: Clemens Ladisch <clemens@...isch.de>
Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [Question] Usage of ENOTSUPP error code
Hi Clemens,
Thanks for your clarification.
2015-07-06 16:37 GMT+09:00 Clemens Ladisch <clemens@...isch.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 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