Skip to content

Commit

Permalink
Merge tag 'x86_sgx_for_v5.12' of git://git.kernel.org/pub/scm/linux/k…
Browse files Browse the repository at this point in the history
…ernel/git/tip/tip

Pull x86 SGX fixes from Borislav Petkov:
 "Random small fixes which missed the initial SGX submission. Also, some
  procedural clarifications"

* tag 'x86_sgx_for_v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  MAINTAINERS: Add Dave Hansen as reviewer for INTEL SGX
  x86/sgx: Drop racy follow_pfn() check
  MAINTAINERS: Fix the tree location for INTEL SGX patches
  x86/sgx: Fix the return type of sgx_init()
  • Loading branch information
torvalds committed Feb 21, 2021
2 parents 70cd33d + 8484777 commit 4bf0b82
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 14 deletions.
3 changes: 2 additions & 1 deletion MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -9183,10 +9183,11 @@ F: include/linux/tboot.h

INTEL SGX
M: Jarkko Sakkinen <[email protected]>
R: Dave Hansen <[email protected]>
L: [email protected]
S: Supported
Q: https://patchwork.kernel.org/project/intel-sgx/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-sgx.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/sgx
F: Documentation/x86/sgx.rst
F: arch/x86/entry/vdso/vsgx.S
F: arch/x86/include/uapi/asm/sgx.h
Expand Down
8 changes: 0 additions & 8 deletions arch/x86/kernel/cpu/sgx/encl.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ static vm_fault_t sgx_vma_fault(struct vm_fault *vmf)
struct sgx_encl_page *entry;
unsigned long phys_addr;
struct sgx_encl *encl;
unsigned long pfn;
vm_fault_t ret;

encl = vma->vm_private_data;
Expand All @@ -168,13 +167,6 @@ static vm_fault_t sgx_vma_fault(struct vm_fault *vmf)

phys_addr = sgx_get_epc_phys_addr(entry->epc_page);

/* Check if another thread got here first to insert the PTE. */
if (!follow_pfn(vma, addr, &pfn)) {
mutex_unlock(&encl->lock);

return VM_FAULT_NOPAGE;
}

ret = vmf_insert_pfn(vma, addr, PFN_DOWN(phys_addr));
if (ret != VM_FAULT_NOPAGE) {
mutex_unlock(&encl->lock);
Expand Down
14 changes: 9 additions & 5 deletions arch/x86/kernel/cpu/sgx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -700,25 +700,27 @@ static bool __init sgx_page_cache_init(void)
return true;
}

static void __init sgx_init(void)
static int __init sgx_init(void)
{
int ret;
int i;

if (!cpu_feature_enabled(X86_FEATURE_SGX))
return;
return -ENODEV;

if (!sgx_page_cache_init())
return;
return -ENOMEM;

if (!sgx_page_reclaimer_init())
if (!sgx_page_reclaimer_init()) {
ret = -ENOMEM;
goto err_page_cache;
}

ret = sgx_drv_init();
if (ret)
goto err_kthread;

return;
return 0;

err_kthread:
kthread_stop(ksgxd_tsk);
Expand All @@ -728,6 +730,8 @@ static void __init sgx_init(void)
vfree(sgx_epc_sections[i].pages);
memunmap(sgx_epc_sections[i].virt_addr);
}

return ret;
}

device_initcall(sgx_init);

0 comments on commit 4bf0b82

Please sign in to comment.