From 95099d4622f8cb224d94e314c7a8e0df60b13f87 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Sat, 09 Dec 2023 08:38:01 +0000
Subject: [PATCH] enable docker ppp

---
 kernel/arch/arm64/include/asm/scs.h |   36 ++++++++++++++----------------------
 1 files changed, 14 insertions(+), 22 deletions(-)

diff --git a/kernel/arch/arm64/include/asm/scs.h b/kernel/arch/arm64/include/asm/scs.h
index c50d2b0..eaa2cd9 100644
--- a/kernel/arch/arm64/include/asm/scs.h
+++ b/kernel/arch/arm64/include/asm/scs.h
@@ -2,34 +2,26 @@
 #ifndef _ASM_SCS_H
 #define _ASM_SCS_H
 
-#ifndef __ASSEMBLY__
+#ifdef __ASSEMBLY__
 
-#include <linux/scs.h>
+#include <asm/asm-offsets.h>
 
 #ifdef CONFIG_SHADOW_CALL_STACK
+	scs_sp	.req	x18
 
-extern void scs_init_irq(void);
+	.macro scs_load tsk, tmp
+	ldr	scs_sp, [\tsk, #TSK_TI_SCS_SP]
+	.endm
 
-static __always_inline void scs_save(struct task_struct *tsk)
-{
-	void *s;
+	.macro scs_save tsk, tmp
+	str	scs_sp, [\tsk, #TSK_TI_SCS_SP]
+	.endm
+#else
+	.macro scs_load tsk, tmp
+	.endm
 
-	asm volatile("mov %0, x18" : "=r" (s));
-	task_set_scs(tsk, s);
-}
-
-static inline void scs_overflow_check(struct task_struct *tsk)
-{
-	if (unlikely(scs_corrupted(tsk)))
-		panic("corrupted shadow stack detected inside scheduler\n");
-}
-
-#else /* CONFIG_SHADOW_CALL_STACK */
-
-static inline void scs_init_irq(void) {}
-static inline void scs_save(struct task_struct *tsk) {}
-static inline void scs_overflow_check(struct task_struct *tsk) {}
-
+	.macro scs_save tsk, tmp
+	.endm
 #endif /* CONFIG_SHADOW_CALL_STACK */
 
 #endif /* __ASSEMBLY __ */

--
Gitblit v1.6.2