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