On 12/17/18 10:01 AM, Jarkko Sakkinen wrote: >>> + encl->mm = current->mm; <---------------------------------> + encl->base = secs->base; >>> + encl->size = secs->size; >>> + encl->ssaframesize = secs->ssa_frame_size; >>> + encl->backing = backing; >>> + >>> + return encl; >>> +} >> How is this OK without taking a reference on the mm? >> >> I have a feeling a bunch of your bugs with the mmu notifiers and so >> forth are because the refcounting is wrong here. >> >> Sean's SGX_ENCL_MM_RELEASED would, I think be unnecessary if you just >> take a refcount here and release it when the enclave is destroyed. > Right, atomic_inc(encl->mm->count) here and once when releasing. > > The we would not even need the whole mmu notifier in the first place. Please use mmget()/mmput().