On Thu, Feb 04, 2021 at 02:41:57PM -0800, Dave Hansen wrote: > On 2/4/21 6:51 AM, Jarkko Sakkinen wrote: > >>> A: ret == -ENODEV > >>> B: ret == 0 > >>> C: ret != 0 && ret != -ENODEV > >> Let me try again: > >> > >> Why A and C should be treated differently? What will behave incorrectly, in case of > >> C? > > So you don't know what different error codes mean? > > How about we just leave the check in place as Sean wrote it, and add a > nice comment to explain what it is doing: > > /* > * Always try to initialize the native *and* KVM drivers. > * The KVM driver is less picky than the native one and > * can function if the native one is not supported on the > * current system or fails to initialize. > * > * Error out only if both fail to initialize. > */ > ret = !!sgx_drv_init() & !!sgx_vepc_init(); > if (ret) > goto err_kthread; WFM, I can go along, as long as there is a remark. There is a semantical difference between "not supported" and "failure to initialize". The driving point is that this should not be hidden. I was first thinking a note in the commit message, but inline comment is actually a better idea. Thanks! I can ack the next version, as long as this comment is included. /Jarkko