Add defines to track the minor numbers for each SGX device in
preparation for moving the helper code and provisioning device to the
common subsystem, and in preparation for adding a third device, i.e. a
virtual EPC device.

Signed-off-by: Sean Christopherson <sean.j.christopher...@intel.com>
---
 arch/x86/kernel/cpu/sgx/driver/driver.h | 1 -
 arch/x86/kernel/cpu/sgx/driver/main.c   | 9 +++++----
 arch/x86/kernel/cpu/sgx/sgx.h           | 4 ++++
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/cpu/sgx/driver/driver.h 
b/arch/x86/kernel/cpu/sgx/driver/driver.h
index da60839b133a..6ce18c766a5a 100644
--- a/arch/x86/kernel/cpu/sgx/driver/driver.h
+++ b/arch/x86/kernel/cpu/sgx/driver/driver.h
@@ -15,7 +15,6 @@
 #include "../encls.h"
 #include "../sgx.h"
 
-#define SGX_DRV_NR_DEVICES     2
 #define SGX_EINIT_SPIN_COUNT   20
 #define SGX_EINIT_SLEEP_COUNT  50
 #define SGX_EINIT_SLEEP_TIME   20
diff --git a/arch/x86/kernel/cpu/sgx/driver/main.c 
b/arch/x86/kernel/cpu/sgx/driver/main.c
index bb7f1932529f..a2506a49c95a 100644
--- a/arch/x86/kernel/cpu/sgx/driver/main.c
+++ b/arch/x86/kernel/cpu/sgx/driver/main.c
@@ -211,7 +211,7 @@ int __init sgx_drv_init(void)
        if (ret)
                return ret;
 
-       ret = alloc_chrdev_region(&sgx_devt, 0, SGX_DRV_NR_DEVICES, "sgx");
+       ret = alloc_chrdev_region(&sgx_devt, 0, SGX_MAX_NR_DEVICES, "sgx");
        if (ret < 0)
                goto err_bus;
 
@@ -238,12 +238,13 @@ int __init sgx_drv_init(void)
        }
 
        ret = sgx_dev_init("sgx/enclave", &sgx_encl_dev, &sgx_encl_cdev,
-                          &sgx_encl_fops, 0);
+                          &sgx_encl_fops, SGX_ENCL_DEV_MINOR);
        if (ret)
                goto err_chrdev_region;
 
        ret = sgx_dev_init("sgx/provision", &sgx_provision_dev,
-                          &sgx_provision_cdev, &sgx_provision_fops, 1);
+                          &sgx_provision_cdev, &sgx_provision_fops,
+                          SGX_PROV_DEV_MINOR);
        if (ret)
                goto err_encl_dev;
 
@@ -277,7 +278,7 @@ int __init sgx_drv_init(void)
        put_device(&sgx_encl_dev);
 
 err_chrdev_region:
-       unregister_chrdev_region(sgx_devt, SGX_DRV_NR_DEVICES);
+       unregister_chrdev_region(sgx_devt, SGX_MAX_NR_DEVICES);
 
 err_bus:
        bus_unregister(&sgx_bus_type);
diff --git a/arch/x86/kernel/cpu/sgx/sgx.h b/arch/x86/kernel/cpu/sgx/sgx.h
index c9276d4b6ffe..4e2c3ce94f63 100644
--- a/arch/x86/kernel/cpu/sgx/sgx.h
+++ b/arch/x86/kernel/cpu/sgx/sgx.h
@@ -89,4 +89,8 @@ void sgx_free_page(struct sgx_epc_page *page);
 int sgx_einit(struct sgx_sigstruct *sigstruct, struct sgx_einittoken *token,
              struct sgx_epc_page *secs, u64 *lepubkeyhash);
 
+#define SGX_ENCL_DEV_MINOR     0
+#define SGX_PROV_DEV_MINOR     1
+#define SGX_MAX_NR_DEVICES     2
+
 #endif /* _X86_SGX_H */
-- 
2.22.0

Reply via email to