@@ -9,6 +9,8 @@
#include <linux/suspend.h>
#include <asm/traps.h>
#include "driver.h"
+#include "encl.h"
+#include "encls.h"
MODULE_DESCRIPTION("Intel SGX Enclave Driver");
MODULE_AUTHOR("Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>");
@@ -10,9 +10,6 @@
#include <linux/sched.h>
#include <linux/workqueue.h>
#include <uapi/asm/sgx.h>
-#include "arch.h"
-#include "encl.h"
-#include "encls.h"
#include "sgx.h"
#define SGX_DRV_NR_DEVICES 2
@@ -7,10 +7,8 @@
#include <linux/shmem_fs.h>
#include <linux/suspend.h>
#include <linux/sched/mm.h>
-#include "arch.h"
#include "encl.h"
#include "encls.h"
-#include "sgx.h"
static int __sgx_encl_eldu(struct sgx_encl_page *encl_page,
struct sgx_epc_page *epc_page,
@@ -15,6 +15,7 @@
#include <linux/radix-tree.h>
#include <linux/srcu.h>
#include <linux/workqueue.h>
+#include "sgx.h"
/**
* enum sgx_encl_page_desc - defines bits for an enclave page's descriptor
@@ -8,7 +8,7 @@
#include <linux/rwsem.h>
#include <linux/types.h>
#include <asm/asm.h>
-#include "arch.h"
+#include "sgx.h"
/**
* ENCLS_FAULT_FLAG - flag signifying an ENCLS return code is a trapnr
@@ -13,6 +13,8 @@
#include <linux/slab.h>
#include <linux/suspend.h>
#include "driver.h"
+#include "encl.h"
+#include "encls.h"
static struct sgx_va_page *sgx_encl_grow(struct sgx_encl *encl)
{
@@ -9,9 +9,8 @@
#include <linux/sched/signal.h>
#include <linux/slab.h>
#include "driver.h"
-#include "arch.h"
+#include "encl.h"
#include "encls.h"
-#include "sgx.h"
struct sgx_epc_section sgx_epc_sections[SGX_MAX_EPC_SECTIONS];
int sgx_nr_epc_sections;
@@ -10,7 +10,8 @@
#include <linux/sched/mm.h>
#include <linux/sched/signal.h>
#include "driver.h"
-#include "sgx.h"
+#include "encl.h"
+#include "encls.h"
struct task_struct *ksgxswapd_tsk;
DECLARE_WAIT_QUEUE_HEAD(ksgxswapd_waitq);
@@ -9,6 +9,7 @@
#include <linux/types.h>
#include <asm/asm.h>
#include <uapi/asm/sgx_errno.h>
+#include "arch.h"
struct sgx_epc_page {
unsigned long desc;
Include arch.h from sgx.h and include sgx.h from other headers. This makes a sane include order. Any new header should only need to include sgx.h. The .c files must just include the modules that they use. Cc: Sean Christopherson <sean.j.christopherson@intel.com> Cc: Shay Katz-zamir <shay.katz-zamir@intel.com> Cc: Serge Ayoun <serge.ayoun@intel.com> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> --- arch/x86/kernel/cpu/sgx/driver.c | 2 ++ arch/x86/kernel/cpu/sgx/driver.h | 3 --- arch/x86/kernel/cpu/sgx/encl.c | 2 -- arch/x86/kernel/cpu/sgx/encl.h | 1 + arch/x86/kernel/cpu/sgx/encls.h | 2 +- arch/x86/kernel/cpu/sgx/ioctl.c | 2 ++ arch/x86/kernel/cpu/sgx/main.c | 3 +-- arch/x86/kernel/cpu/sgx/reclaim.c | 3 ++- arch/x86/kernel/cpu/sgx/sgx.h | 1 + 9 files changed, 10 insertions(+), 9 deletions(-)