On Thu, 2020-05-21 at 15:42 -0700, Kees Cook wrote: > On Wed, Apr 29, 2020 at 03:07:32PM -0700, Yu-cheng Yu wrote: [...] > > + > > +int prctl_cet(int option, u64 arg2) > > +{ > > + struct cet_status *cet; > > + > > + if (!IS_ENABLED(CONFIG_X86_INTEL_CET)) > > + return -EINVAL; > > Using -EINVAL here means userspace can't tell the difference between an > old kernel and a kernel not built with CONFIG_X86_INTEL_CET. Perhaps > -ENOTSUPP? Looked into this. The kernel and GLIBC are not in sync. So maybe we still use EINVAL here? Yu-cheng In kernel: ---------- #define EOPNOTSUPP 95 #define ENOTSUPP 524 In GLIBC: --------- printf("ENOTSUP=%d\n", ENOTSUP); printf("EOPNOTSUPP=%d\n", EOPNOTSUPP); printf("%s=524\n", strerror(524)); ENOTSUP=95 EOPNOTSUPP=95 Unknown error 524=524