Messages in this thread | | | Date | Mon, 29 Jun 2020 17:37:37 +0200 | From | Borislav Petkov <> | Subject | Re: [PATCH v33 11/21] x86/sgx: Linux Enclave Driver |
| |
On Mon, Jun 29, 2020 at 08:27:19AM -0700, Sean Christopherson wrote: > Hmm, I was going to say that SGX_ENCL_INITIALIZED can't be checked until > encl->lock is held, but that's not true for this path as mutual exclusion > is provided by the SGX_ENCL_IOCTL flag. So yeah, this can be checked at > the same time as SGX_ENCL_CREATED in sgx_ioc_enclave_init().
Right, so my point is to have state checks for flags which make sense in all ioctl entry points, in order to catch a misuse early. But we're on the same page.
> ENCLS[EINIT] is interruptible because it has such a high latency, e.g. 50k+ > cycles on success. If an IRQ/NMI/SMI becomes pending, EINIT may fail with > SGX_UNMASKED_EVENT so that the event can be serviced. > > The idea behind the double loop is to try EINIT in a tight loop, then back > off and sleep for a while before retrying that tight inner loop.
That gist of that kinda wants to be in a comment over that double-loop for future on-lookers.
Thx.
-- Regards/Gruss, Boris.
https://people.kernel.org/tglx/notes-about-netiquette
| |