On Tue, Apr 26, 2016 at 11:49:38PM -0700, Jethro Beekman wrote: > On 25-04-16 10:34, Jarkko Sakkinen wrote: > > diff --git a/drivers/staging/intel_sgx/isgx_ioctl.c > b/drivers/staging/intel_sgx/isgx_ioctl.c > > new file mode 100644 > > index 0000000..9d8b36b > > --- /dev/null > > +++ b/drivers/staging/intel_sgx/isgx_ioctl.c > > > > +static long isgx_ioctl_enclave_create(struct file *filep, unsigned int cmd, > > + unsigned long arg) > > > > + secs->base = vm_mmap(filep, 0, secs->size, > > + PROT_READ | PROT_WRITE | PROT_EXEC, > > + MAP_SHARED, 0); > > Why does the ioctl interface map userspace memory for an open device? > There's already a perfectly good syscall for that: mmap. You didn't explain what would be the value in doing this but after thinking for a short while I found out two good reasons: * The current API is ugly in a way that you can anyway call mmap directly too and have a useless zombie enclave. This would make the API less ambiguous. * SGX_IOC_ENCLAVE_CREATE could be removed. SECS could be passed through SGX_IOC_ENCLAVE_ADD_PAGE thus simplifying the API a lot. Given these circumstances I think this does make sense. > > diff --git a/drivers/staging/intel_sgx/isgx_user.h b/drivers/staging/intel_sgx/isgx_user.h > > new file mode 100644 > > index 0000000..672d19c > > --- /dev/null > > +++ b/drivers/staging/intel_sgx/isgx_user.h > > > > +#define SGX_ADD_SKIP_EEXTEND 0x1 > > + > > +struct sgx_add_param { > > + unsigned long addr; > > + unsigned long user_addr; > > + struct isgx_secinfo *secinfo; > > + unsigned int flags; > > +}; > > The hardware supports calling EEXTEND on only a part of a page, I think the > driver should also support that. Why would you want to do that? > Jethro /Jarkko _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel