On 2/3/21 1:54 PM, Yu, Yu-cheng wrote: > On 1/29/2021 10:56 AM, Yu, Yu-cheng wrote: >> On 1/29/2021 9:07 AM, Dave Hansen wrote: >>> On 1/27/21 1:25 PM, Yu-cheng Yu wrote: >>>> + if (!IS_ENABLED(CONFIG_X86_CET)) >>>> + return -EOPNOTSUPP; >>> >>> Let's ignore glibc for a moment. What error code *should* the kernel be >>> returning here? errno(3) says: >>> >>> EOPNOTSUPP Operation not supported on socket (POSIX.1) >>> ... >>> ENOTSUP Operation not supported (POSIX.1) >>> >> >> Yeah, other places in kernel use ENOTSUPP. This seems to be out of >> line. And since the issue is long-existing, applications already know >> how to deal with it. I should have made that argument. Change it to >> ENOTSUPP. > > When I make the change, checkpatch says... > > WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP > #128: FILE: arch/x86/kernel/cet_prctl.c:33: > + return -ENOTSUPP; > > Do we want to reconsider? I'm not sure I trust checkpatch over manpages. I had to google "SUSV4". I'm not sure it matters at *all* for a 100% Linux-specific interface. ENOTSUPP does seem less popular lately: > $ git diff v5.0.. kernel/ arch/ drivers/ | grep ^+.*return.*E.*NO.*SUP.*\; | grep -o -- -E.*\; | sort | uniq -c | sort -n > ... noise > 61 -EOPNOTSUPP); > 260 -ENOTSUPP; > 1577 -EOPNOTSUPP; but far from unused. That might be due to checkpatch spew more than anything.