From 7f1a7506cbf7f28698b50a5af56cdf4de9aaa8b0 Mon Sep 17 00:00:00 2001 From: Vladimir Kondratyev Date: Sun, 11 Feb 2024 01:01:50 +0300 Subject: [PATCH] Revert "LinuxKPI: Do not use explicit context in FPU sections on powerpc64" kmalloc() support within FPU sections will be redone in other way. This reverts commit b4efc62776344a9aaada5a0866e453e528a0e977. Sponsored by: Serenity Cyber Security, LLC Requested by: jhb --- sys/compat/linuxkpi/common/include/linux/compat.h | 5 +++++ sys/compat/linuxkpi/common/src/linux_current.c | 9 +++------ sys/compat/linuxkpi/common/src/linux_fpu.c | 3 +-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/compat.h b/sys/compat/linuxkpi/common/include/linux/compat.h index d357abce732..7922e884beb 100644 --- a/sys/compat/linuxkpi/common/include/linux/compat.h +++ b/sys/compat/linuxkpi/common/include/linux/compat.h @@ -33,6 +33,11 @@ #include #include +#if defined(__aarch64__) || defined(__arm__) || defined(__amd64__) || \ + defined(__i386__) || defined(__powerpc64__) +#define LKPI_HAVE_FPU_CTX +#endif + struct domainset; struct thread; struct task_struct; diff --git a/sys/compat/linuxkpi/common/src/linux_current.c b/sys/compat/linuxkpi/common/src/linux_current.c index 64b5b8be4c6..d269552c4ff 100644 --- a/sys/compat/linuxkpi/common/src/linux_current.c +++ b/sys/compat/linuxkpi/common/src/linux_current.c @@ -43,8 +43,7 @@ #include #include -#if defined(__aarch64__) || defined(__arm__) || defined(__amd64__) || \ - defined(__i386__) +#ifdef LKPI_HAVE_FPU_CTX #include #endif @@ -161,8 +160,7 @@ linux_alloc_current(struct thread *td, int flags) int linux_set_fpu_ctx(struct task_struct *task) { -#if defined(__aarch64__) || defined(__arm__) || defined(__amd64__) || \ - defined(__i386__) +#ifdef LKPI_HAVE_FPU_CTX if (task->fpu_ctx == NULL && curthread->td_critnest == 0) task->fpu_ctx = fpu_kern_alloc_ctx(FPU_KERN_NOWAIT); #endif @@ -192,8 +190,7 @@ void linux_free_current(struct task_struct *ts) { mmput(ts->mm); -#if defined(__aarch64__) || defined(__arm__) || defined(__amd64__) || \ - defined(__i386__) +#ifdef LKPI_HAVE_FPU_CTX if (ts->fpu_ctx != NULL) fpu_kern_free_ctx(ts->fpu_ctx); #endif diff --git a/sys/compat/linuxkpi/common/src/linux_fpu.c b/sys/compat/linuxkpi/common/src/linux_fpu.c index ef7f252cdd9..d510bc208b8 100644 --- a/sys/compat/linuxkpi/common/src/linux_fpu.c +++ b/sys/compat/linuxkpi/common/src/linux_fpu.c @@ -35,8 +35,7 @@ #include -#if defined(__aarch64__) || defined(__arm__) || defined(__amd64__) || \ - defined(__i386__) || defined(__powerpc64__) +#ifdef LKPI_HAVE_FPU_CTX #include