On Mon, Aug 27, 2018 at 9:58 PM Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx> wrote: > > Add data structures to track Enclave Page Cache (EPC) pages. EPC is > divided into multiple banks (1-N) of which addresses and sizes can be > enumerated with CPUID by the OS. > > On NUMA systems a node can have at most bank. A bank can be at most part of > two nodes. SGX supports both nodes with a single memory controller and also > sub-cluster nodes with severals memory controllers on a single die. > -#include <asm/sgx.h> > -#include <asm/sgx_pr.h> > #include <linux/freezer.h> > #include <linux/highmem.h> > #include <linux/kthread.h> > +#include <linux/pagemap.h> > #include <linux/ratelimit.h> > #include <linux/sched/signal.h> > +#include <linux/shmem_fs.h> > #include <linux/slab.h> > +#include <asm/sgx.h> > +#include <asm/sgx_pr.h> Squash issues? > + va = ioremap_cache(addr, size); > + if (!va) > + return -ENOMEM; I'm not sure this is a right API. Do we operate with memory? Does it have I/O side effects? If no, memremap() would be better to use. -- With Best Regards, Andy Shevchenko