diff --git a/0001-Fix-compilation-on-5.8-kernel-120.patch b/0001-Fix-compilation-on-5.8-kernel-120.patch deleted file mode 100644 index 2a07db1..0000000 --- a/0001-Fix-compilation-on-5.8-kernel-120.patch +++ /dev/null @@ -1,207 +0,0 @@ -From 276c5c6a064d22358542f5e0aa96b1c0ace5d695 Mon Sep 17 00:00:00 2001 -From: Don Porter -Date: Wed, 2 Sep 2020 14:26:40 -0400 -Subject: [PATCH 1/1] Fix compilation on 5.8 kernel (#120) - -* Fix compilation on 5.8 kernel - -Signed-off-by: Don Porter - -* Address review comments - -* Address review comments - -Signed-off-by: chenmaodong ---- - sgx_encl.c | 30 ++++++++++++++++++++++++++---- - sgx_encl2.c | 19 ++++++++++++++++++- - sgx_ioctl.c | 9 +++++++++ - sgx_page_cache.c | 9 +++++++++ - 4 files changed, 62 insertions(+), 5 deletions(-) - -diff --git a/sgx_encl.c b/sgx_encl.c -index 44439c8..04a1b9c 100644 ---- a/sgx_encl.c -+++ b/sgx_encl.c -@@ -316,7 +316,11 @@ static void sgx_add_page_worker(struct work_struct *work) - goto next; - } - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_lock(encl->mm); -+#else - down_read(&encl->mm->mmap_sem); -+#endif - mutex_lock(&encl->lock); - - if (!sgx_process_add_page_req(req, epc_page)) { -@@ -325,7 +329,11 @@ static void sgx_add_page_worker(struct work_struct *work) - } - - mutex_unlock(&encl->lock); -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_unlock(encl->mm); -+#else - up_read(&encl->mm->mmap_sem); -+#endif - - next: - kfree(req); -@@ -639,31 +647,45 @@ int sgx_encl_create(struct sgx_secs *secs) - goto out; - } - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_lock(current->mm); -+#else - down_read(¤t->mm->mmap_sem); -+#endif - ret = sgx_encl_find(current->mm, secs->base, &vma); - if (ret != -ENOENT) { - if (!ret) - ret = -EINVAL; -- up_read(¤t->mm->mmap_sem); -- goto out; -+ goto out_locked; - } - - if (vma->vm_start != secs->base || - vma->vm_end != (secs->base + secs->size) - /* vma->vm_pgoff != 0 */) { - ret = -EINVAL; -- up_read(¤t->mm->mmap_sem); -- goto out; -+ goto out_locked; - } - - vma->vm_private_data = encl; -+ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_unlock(current->mm); -+#else - up_read(¤t->mm->mmap_sem); -+#endif - - mutex_lock(&sgx_tgid_ctx_mutex); - list_add_tail(&encl->encl_list, &encl->tgid_ctx->encl_list); - mutex_unlock(&sgx_tgid_ctx_mutex); - - return 0; -+out_locked: -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_unlock(current->mm); -+#else -+ up_read(¤t->mm->mmap_sem); -+#endif -+ - out: - if (encl) - kref_put(&encl->refcount, sgx_encl_release); -diff --git a/sgx_encl2.c b/sgx_encl2.c -index 2f5064f..0122efd 100644 ---- a/sgx_encl2.c -+++ b/sgx_encl2.c -@@ -234,12 +234,22 @@ static int isolate_range(struct sgx_encl *encl, - - address = rg->start_addr; - end = address + rg->nr_pages * PAGE_SIZE; -+ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_lock(encl->mm); -+#else - down_read(&encl->mm->mmap_sem); -+#endif -+ - - for (; address < end; address += PAGE_SIZE) { - ret = sgx_encl_find(encl->mm, address, &vma); - if (ret || encl != vma->vm_private_data) { -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_unlock(encl->mm); -+#else - up_read(&encl->mm->mmap_sem); -+#endif - return -EINVAL; - } - -@@ -250,7 +260,11 @@ static int isolate_range(struct sgx_encl *encl, - SGX_FAULT_RESERVE, NULL); - - if (IS_ERR(encl_page)) { -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_unlock(encl->mm); -+#else - up_read(&encl->mm->mmap_sem); -+#endif - sgx_err(encl, "sgx: No page found at address 0x%lx\n", - address); - return PTR_ERR(encl_page); -@@ -264,8 +278,11 @@ static int isolate_range(struct sgx_encl *encl, - encl_page->flags &= ~SGX_ENCL_PAGE_RESERVED; - mutex_unlock(&encl->lock); - } -- -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_unlock(encl->mm); -+#else - up_read(&encl->mm->mmap_sem); -+#endif - return 0; - } - -diff --git a/sgx_ioctl.c b/sgx_ioctl.c -index 0b3476d..56ab1e6 100644 ---- a/sgx_ioctl.c -+++ b/sgx_ioctl.c -@@ -82,7 +82,11 @@ int sgx_get_encl(unsigned long addr, struct sgx_encl **encl) - if (addr & (PAGE_SIZE - 1)) - return -EINVAL; - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_lock(mm); -+#else - down_read(&mm->mmap_sem); -+#endif - - ret = sgx_encl_find(mm, addr, &vma); - if (!ret) { -@@ -94,7 +98,12 @@ int sgx_get_encl(unsigned long addr, struct sgx_encl **encl) - kref_get(&(*encl)->refcount); - } - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_unlock(mm); -+#else - up_read(&mm->mmap_sem); -+#endif -+ - return ret; - } - -diff --git a/sgx_page_cache.c b/sgx_page_cache.c -index 3770ad4..77bea6e 100644 ---- a/sgx_page_cache.c -+++ b/sgx_page_cache.c -@@ -376,10 +376,19 @@ static void sgx_swap_pages(unsigned long nr_to_scan) - if (!encl) - goto out; - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_lock(encl->mm); -+#else - down_read(&encl->mm->mmap_sem); -+#endif -+ - sgx_isolate_pages(encl, &cluster, nr_to_scan); - sgx_write_pages(encl, &cluster); -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) -+ mmap_read_unlock(encl->mm); -+#else - up_read(&encl->mm->mmap_sem); -+#endif - - kref_put(&encl->refcount, sgx_encl_release); - out: --- -1.8.3.1 - diff --git a/0002-Use-cpuid-instead-of-boot_cpu_has-to-check-cpu-features.patch b/0002-Use-cpuid-instead-of-boot_cpu_has-to-check-cpu-features.patch deleted file mode 100644 index a6de048..0000000 --- a/0002-Use-cpuid-instead-of-boot_cpu_has-to-check-cpu-features.patch +++ /dev/null @@ -1,30 +0,0 @@ -From ed2c256929962db1a8805db53bed09bb8f2f4de3 Mon Sep 17 00:00:00 2001 -From: Haitao Huang <4699115+haitaohuang@users.noreply.github.com> -Date: Fri, 16 Apr 2021 20:12:10 +0000 -Subject: [PATCH] Use cpuid instead of boot_cpu_has to check cpu features - -For non-FLC platforms, Linux kernel 5.11 or above disables sgx feature flag -so boot_cpu_has is not usable. - -Signed-off-by: Haitao Huang <4699115+haitaohuang@users.noreply.github.com> ---- - sgx_main.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/sgx_main.c b/sgx_main.c -index 4ff4e2b..ca52821 100644 ---- a/sgx_main.c -+++ b/sgx_main.c -@@ -313,7 +313,8 @@ static int sgx_drv_probe(struct platform_device *pdev) - if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) - return -ENODEV; - -- if (!boot_cpu_has(X86_FEATURE_SGX)) { -+ cpuid(7, &eax, &ebx, &ecx, &edx); -+ if(!((ebx >> 2) & 0x1)){ - pr_err("intel_sgx: the CPU is missing SGX\n"); - return -ENODEV; - } --- -2.27.0 - diff --git a/0003-Clean-more-files.patch b/0003-Clean-more-files.patch deleted file mode 100644 index 5f9a9be..0000000 --- a/0003-Clean-more-files.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 438248400c6ae28c2d14b5e5abf05bbf4faa72a3 Mon Sep 17 00:00:00 2001 -From: Haitao Huang <4699115+haitaohuang@users.noreply.github.com> -Date: Sat, 12 Sep 2020 16:44:52 -0500 -Subject: [PATCH 2/5] Clean more files - -Signed-off-by: Haitao Huang <4699115+haitaohuang@users.noreply.github.com> ---- - .gitignore | 1 + - Makefile | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/.gitignore b/.gitignore -index 1adf5a1..a4dfd7f 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -1,6 +1,7 @@ - *.ko - *.o - *.cmd -+*.mod - *.mod.* - *.symvers - *.order -diff --git a/Makefile b/Makefile -index 74ec5d7..c0963fc 100644 ---- a/Makefile -+++ b/Makefile -@@ -23,4 +23,4 @@ install: default - endif - - clean: -- rm -vrf *.o *.ko *.order *.symvers *.mod.c .tmp_versions .*o.cmd -+ rm -vrf *.o *.ko *.order *.symvers *.mod.c .tmp_versions .*o.cmd *.mod --- -2.39.0.windows.1 - diff --git a/0004-Update-supported-OSes-by-referring-to-releases.patch b/0004-Update-supported-OSes-by-referring-to-releases.patch deleted file mode 100644 index f95c0f2..0000000 --- a/0004-Update-supported-OSes-by-referring-to-releases.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 3a4f6ac598f89a3ba3c423335841fe250495f4b9 Mon Sep 17 00:00:00 2001 -From: Haitao Huang <4699115+haitaohuang@users.noreply.github.com> -Date: Mon, 9 Nov 2020 15:09:08 -0600 -Subject: [PATCH 4/5] Update supported OSes by referring to releases - -Signed-off-by: Haitao Huang <4699115+haitaohuang@users.noreply.github.com> ---- - README.md | 12 ++---------- - 1 file changed, 2 insertions(+), 10 deletions(-) - -diff --git a/README.md b/README.md -index 91172ff..62d4529 100644 ---- a/README.md -+++ b/README.md -@@ -32,15 +32,7 @@ Build and Install the Intel(R) SGX Driver - ----------------------------------------- - - ### Prerequisites --- Ensure that you have the following required operating systems: -- * Ubuntu* 16.04.3 LTS Desktop 64bits -- * Ubuntu* 16.04.3 LTS Server 64bits -- * Ubuntu* 18.04 LTS Desktop 64bits -- * Ubuntu* 18.04 LTS Server 64bits -- * Red Hat Enterprise Linux Server release 7.4 64bits -- * Red Hat Enterprise Linux Server release 8.0 64bits -- * CentOS 7.4.1708 64bits -- * SUSE Linux Enterprise Server 12 64bits -+- Ensure that you have an operating system version supported as listed in releases: https://01.org/intel-software-guard-extensions/downloads - - Ensure that you have the following required hardware: - * 6th Generation Intel(R) Core(TM) Processor or newer - - Configure the system with the **SGX hardware enabled** option. -@@ -54,7 +46,7 @@ Build and Install the Intel(R) SGX Driver - ``` - $ sudo apt-get install linux-headers-$(uname -r) - ``` -- * On CentOS and RHEL -+ * On CentOS, RHEL or Fedora - * To check if matching kernel headers are installed: - ``` - $ ls /usr/src/kernels/$(uname -r) --- -2.39.0.windows.1 - diff --git a/linux-sgx-driver.spec b/linux-sgx-driver.spec index 054dbcd..96a1f3d 100644 --- a/linux-sgx-driver.spec +++ b/linux-sgx-driver.spec @@ -1,6 +1,6 @@ Name: linux-sgx-driver -Version: 2.11 -Release: 9 +Version: 2.14 +Release: 1 Summary: Intel SGX Linux* Driver ExclusiveArch: x86_64 License: BSD-3-Clause and GPL-2.0 License @@ -8,10 +8,6 @@ URL: https://github.com/intel/linux-sgx-driver Source0: https://github.com/intel/linux-sgx-driver/archive/sgx_driver_%{version}.tar.gz BuildRequires: gcc kernel-devel make module-init-tools glibc uname-build-checks elfutils-devel -Patch0: 0001-Fix-compilation-on-5.8-kernel-120.patch -Patch1: 0002-Use-cpuid-instead-of-boot_cpu_has-to-check-cpu-features.patch -Patch2: 0003-Clean-more-files.patch -Patch4: 0004-Update-supported-OSes-by-referring-to-releases.patch %define kern_devel_ver %(uname -r) Requires: kernel=%{kern_devel_ver} @@ -29,7 +25,7 @@ software stack, which will be used until the driver upstreaming process is compl %prep -%autosetup -n %{name}-sgx_driver_2.11 -p1 +%autosetup -n %{name}-sgx_driver_2.14 -p1 %build make @@ -64,6 +60,9 @@ sed -i '/^isgx$/d' /etc/modules %changelog +* Mon Jan 30 2023 wangyunjia - 2.14-1 +- Update version to 2.14 + * Fri Dec 30 2022 xuxinyu - 2.11-9 - Update supported OSes by referring to releases diff --git a/sgx_driver_2.11.tar.gz b/sgx_driver_2.11.tar.gz deleted file mode 100644 index 2ccaa13..0000000 Binary files a/sgx_driver_2.11.tar.gz and /dev/null differ diff --git a/sgx_driver_2.14.tar.gz b/sgx_driver_2.14.tar.gz new file mode 100644 index 0000000..954f94b Binary files /dev/null and b/sgx_driver_2.14.tar.gz differ