!34 update version to 2.14
From: @yunjia_w Reviewed-by: @houmingyong Signed-off-by: @houmingyong
This commit is contained in:
commit
0a2628722f
@ -1,207 +0,0 @@
|
|||||||
From 276c5c6a064d22358542f5e0aa96b1c0ace5d695 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Porter <porter@cs.unc.edu>
|
|
||||||
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 <porter@cs.unc.edu>
|
|
||||||
|
|
||||||
* Address review comments
|
|
||||||
|
|
||||||
* Address review comments
|
|
||||||
|
|
||||||
Signed-off-by: chenmaodong <chenmaodong@huawei.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: linux-sgx-driver
|
Name: linux-sgx-driver
|
||||||
Version: 2.11
|
Version: 2.14
|
||||||
Release: 9
|
Release: 1
|
||||||
Summary: Intel SGX Linux* Driver
|
Summary: Intel SGX Linux* Driver
|
||||||
ExclusiveArch: x86_64
|
ExclusiveArch: x86_64
|
||||||
License: BSD-3-Clause and GPL-2.0 License
|
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
|
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
|
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)
|
%define kern_devel_ver %(uname -r)
|
||||||
Requires: kernel=%{kern_devel_ver}
|
Requires: kernel=%{kern_devel_ver}
|
||||||
@ -29,7 +25,7 @@ software stack, which will be used until the driver upstreaming process is compl
|
|||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -n %{name}-sgx_driver_2.11 -p1
|
%autosetup -n %{name}-sgx_driver_2.14 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
make
|
make
|
||||||
@ -64,6 +60,9 @@ sed -i '/^isgx$/d' /etc/modules
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jan 30 2023 wangyunjia <yunjia.wang@huawei.com> - 2.14-1
|
||||||
|
- Update version to 2.14
|
||||||
|
|
||||||
* Fri Dec 30 2022 xuxinyu <xuxinyu@xfusion.com> - 2.11-9
|
* Fri Dec 30 2022 xuxinyu <xuxinyu@xfusion.com> - 2.11-9
|
||||||
- Update supported OSes by referring to releases
|
- Update supported OSes by referring to releases
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
BIN
sgx_driver_2.14.tar.gz
Normal file
BIN
sgx_driver_2.14.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user