From 3f816c33b2ed4fa5dec60d467108763cbff5d599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E6=B5=A9?= Date: Wed, 27 Sep 2023 17:28:40 +0800 Subject: [PATCH] fit for linux 6.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁浩 --- Makefile | 1 + core/tc_client_driver.c | 12 +++++++++--- core/tz_spi_notify.c | 3 +-- tzdriver_internal/tee_reboot/reboot.c | 2 -- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index d353a40..9417880 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,7 @@ KPATH := /usr/src/kernels KDIR := $(KPATH)/$(shell ls $(KPATH)) EXTRA_CFLAGS += -isystem /usr/lib/gcc/aarch64-linux-gnu/10.3.1/include +EXTRA_CFLAGS += -isystem /usr/lib/gcc/aarch64-openEuler-linux-gnu/12/include EXTRA_CFLAGS += -fstack-protector-strong -DCONFIG_TEELOG -DCONFIG_TZDRIVER_MODULE -DCONFIG_TEECD_AUTH -DCONFIG_PAGES_MEM=y -DCONFIG_CLOUDSERVER_TEECD_AUTH EXTRA_CFLAGS += -I$(PWD)/libboundscheck/include/ -I$(PWD) -I$(PWD)/auth -I$(PWD)/core -I$(PWD)/tzdriver_internal/tee_trace_event EXTRA_CFLAGS += -I$(PWD)/tlogger -I$(PWD)/tzdriver_internal/kthread_affinity -I$(PWD)/tzdriver_internal/include diff --git a/core/tc_client_driver.c b/core/tc_client_driver.c index 89ca104..081d90e 100644 --- a/core/tc_client_driver.c +++ b/core/tc_client_driver.c @@ -571,8 +571,11 @@ static int remap_shared_mem(struct vm_area_struct *vma, tloge("remap pfn for user failed, ret %d", ret); return ret; } - +#if (KERNEL_VERSION(6, 4, 0) <= LINUX_VERSION_CODE) + vma->__vm_flags |= VM_USERMAP; +#else vma->vm_flags |= VM_USERMAP; +#endif ret = remap_vmalloc_range(vma, shared_mem->kernel_addr, 0); if (ret != 0) tloge("can't remap to user, ret = %d\n", ret); @@ -616,8 +619,11 @@ static int tc_client_mmap(struct file *filp, struct vm_area_struct *vma) mutex_unlock(&dev_file->shared_mem_lock); return ret; } - +#if (KERNEL_VERSION(6, 4, 0) <= LINUX_VERSION_CODE) + vma->__vm_flags |= VM_DONTCOPY; +#else vma->vm_flags |= VM_DONTCOPY; +#endif vma->vm_ops = &g_shared_remap_vm_ops; shared_vma_open(vma); vma->vm_private_data = (void *)dev_file; @@ -1193,7 +1199,7 @@ static int tc_ns_client_init(void) ret = load_tz_shared_mem(g_dev_node); if (ret != 0) goto unmap_res_mem; - g_driver_class = class_create(THIS_MODULE, TC_NS_CLIENT_DEV); + g_driver_class = class_create(TC_NS_CLIENT_DEV); if (IS_ERR_OR_NULL(g_driver_class)) { tloge("class create failed"); ret = -ENOMEM; diff --git a/core/tz_spi_notify.c b/core/tz_spi_notify.c index b4bc711..1d4a264 100644 --- a/core/tz_spi_notify.c +++ b/core/tz_spi_notify.c @@ -443,8 +443,7 @@ static void spi_broadcast_notifications(void) return; } - missed = (uint32_t)__xchg(0, &g_notify_data->meta.context.meta.missed, - MISSED_COUNT); + missed = (uint32_t)xchg(&g_notify_data->meta.context.meta.missed, 0); if (missed == 0) return; if ((missed & (1U << NOTIFY_DATA_ENTRY_WAKEUP)) != 0) { diff --git a/tzdriver_internal/tee_reboot/reboot.c b/tzdriver_internal/tee_reboot/reboot.c index 2bd79f1..520e7cc 100644 --- a/tzdriver_internal/tee_reboot/reboot.c +++ b/tzdriver_internal/tee_reboot/reboot.c @@ -99,7 +99,6 @@ static void tee_reboot_secondary_cpus(void) int i; tlogd("secondary cpu will reboot\n"); /* reboot secondary cpus */ - get_online_cpus(); for_each_online_cpu(i) { if (i != 0) { INIT_WORK(&secondary_cpu_on_work[i], secondary_cpu_on_func); @@ -109,7 +108,6 @@ static void tee_reboot_secondary_cpus(void) tlogi("after flush work cpu %d\n", i); } } - put_online_cpus(); } static void tee_reboot_work_func(struct work_struct *dummy) -- Gitee