git: 7f1a7506cbf7 - main - Revert "LinuxKPI: Do not use explicit context in FPU sections on powerpc64"

From: Vladimir Kondratyev <wulf_at_FreeBSD.org>
Date: Sat, 10 Feb 2024 22:03:21 UTC
The branch main has been updated by wulf:

URL: https://cgit.FreeBSD.org/src/commit/?id=7f1a7506cbf7f28698b50a5af56cdf4de9aaa8b0

commit 7f1a7506cbf7f28698b50a5af56cdf4de9aaa8b0
Author:     Vladimir Kondratyev <wulf@FreeBSD.org>
AuthorDate: 2024-02-10 22:01:50 +0000
Commit:     Vladimir Kondratyev <wulf@FreeBSD.org>
CommitDate: 2024-02-10 22:01:50 +0000

    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 d357abce732b..7922e884beb1 100644
--- a/sys/compat/linuxkpi/common/include/linux/compat.h
+++ b/sys/compat/linuxkpi/common/include/linux/compat.h
@@ -33,6 +33,11 @@
 #include <sys/proc.h>
 #include <sys/malloc.h>
 
+#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 64b5b8be4c6a..d269552c4ffa 100644
--- a/sys/compat/linuxkpi/common/src/linux_current.c
+++ b/sys/compat/linuxkpi/common/src/linux_current.c
@@ -43,8 +43,7 @@
 #include <sys/sysctl.h>
 #include <vm/uma.h>
 
-#if defined(__aarch64__) || defined(__arm__) || defined(__amd64__) ||	\
-    defined(__i386__)
+#ifdef LKPI_HAVE_FPU_CTX
 #include <machine/fpu.h>
 #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 ef7f252cdd9e..d510bc208b88 100644
--- a/sys/compat/linuxkpi/common/src/linux_fpu.c
+++ b/sys/compat/linuxkpi/common/src/linux_fpu.c
@@ -35,8 +35,7 @@
 
 #include <asm/fpu/api.h>
 
-#if defined(__aarch64__) || defined(__arm__) || defined(__amd64__) ||	\
-    defined(__i386__) || defined(__powerpc64__)
+#ifdef LKPI_HAVE_FPU_CTX
 
 #include <machine/fpu.h>