Re: [PATCH v24 12/24] x86/sgx: Linux Enclave Driver

From: Sean Christopherson
Date: Mon Dec 02 2019 - 13:21:06 EST


On Mon, Dec 02, 2019 at 09:48:43AM -0600, Haitao Huang wrote:
> On Fri, 29 Nov 2019 17:13:14 -0600, Jarkko Sakkinen
> <jarkko.sakkinen@xxxxxxxxxxxxxxx> wrote:
>
>
> >+
> >+ for (c = 0 ; c < addp.length; c += PAGE_SIZE) {
> >+ if (signal_pending(current)) {
> >+ ret = -ERESTARTSYS;
> >+ break;
> >+ }
>
> This IOC is not idempotent as pages EADDed at this point can not be
> re-EADDed again. So we can't return ERESTARTSYS

Ah, and now I remember why I opted for modifying the parameters directly
instead of including a "number processed" field. Andy pointed out the
ERESTARTSYS thing in the original multi-page add RFC[*], so presumably
updating the params and returning ERESTARTSYS is legal/acceptable.

[*] https://lkml.kernel.org/r/CALCETrUb4X9_L9RXKhmyNpfSCsbNodP=BfbfO8Fz_efq24jp8w@xxxxxxxxxxxxxx