Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'csky-for-linus-6.2-rc1' of https://github.com/c-sky/csky-linux

Pull arch/csky updates from Guo Ren:

- Revert rseq support - it wasn't ready

- Add current_stack_pointer support

- Typo fixup

* tag 'csky-for-linus-6.2-rc1' of https://github.com/c-sky/csky-linux:
Revert "csky: Add support for restartable sequence"
Revert "csky: Fixup CONFIG_DEBUG_RSEQ"
csky: Kconfig: Fix spelling mistake "Meory" -> "Memory"
csky: add arch support current_stack_pointer

+7 -18
+2 -2
arch/csky/Kconfig
··· 9 9 select ARCH_USE_BUILTIN_BSWAP 10 10 select ARCH_USE_QUEUED_RWLOCKS 11 11 select ARCH_USE_QUEUED_SPINLOCKS 12 + select ARCH_HAS_CURRENT_STACK_POINTER 12 13 select ARCH_INLINE_READ_LOCK if !PREEMPTION 13 14 select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION 14 15 select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION ··· 94 93 select HAVE_PERF_USER_STACK_DUMP 95 94 select HAVE_DMA_CONTIGUOUS 96 95 select HAVE_REGS_AND_STACK_ACCESS_API 97 - select HAVE_RSEQ 98 96 select HAVE_STACKPROTECTOR 99 97 select HAVE_SYSCALL_TRACEPOINTS 100 98 select MAY_HAVE_SPARSE_IRQ ··· 269 269 bool "Tightly-Coupled/Sram Memory" 270 270 depends on !COMPILE_TEST 271 271 help 272 - The implementation are not only used by TCM (Tightly-Coupled Meory) 272 + The implementation are not only used by TCM (Tightly-Coupled Memory) 273 273 but also used by sram on SOC bus. It follow existed linux tcm 274 274 software interface, so that old tcm application codes could be 275 275 re-used directly.
+2
arch/csky/include/asm/processor.h
··· 84 84 85 85 #define cpu_relax() barrier() 86 86 87 + register unsigned long current_stack_pointer __asm__("sp"); 88 + 87 89 #endif /* __ASM_CSKY_PROCESSOR_H */
+1 -10
arch/csky/kernel/entry.S
··· 54 54 55 55 lrw r9, __NR_syscalls 56 56 cmphs syscallid, r9 /* Check nr of syscall */ 57 - bt 1f 57 + bt ret_from_exception 58 58 59 59 lrw r9, sys_call_table 60 60 ixw r9, syscallid ··· 80 80 jsr syscallid 81 81 #endif 82 82 stw a0, (sp, LSAVE_A0) /* Save return value */ 83 - 1: 84 - #ifdef CONFIG_DEBUG_RSEQ 85 - mov a0, sp 86 - jbsr rseq_syscall 87 - #endif 88 83 jmpi ret_from_exception 89 84 90 85 csky_syscall_trace: ··· 108 113 stw a0, (sp, LSAVE_A0) /* Save return value */ 109 114 110 115 1: 111 - #ifdef CONFIG_DEBUG_RSEQ 112 - mov a0, sp 113 - jbsr rseq_syscall 114 - #endif 115 116 mov a0, sp /* right now, sp --> pt_regs */ 116 117 jbsr syscall_trace_exit 117 118 br ret_from_exception
-2
arch/csky/kernel/signal.c
··· 179 179 sigset_t *oldset = sigmask_to_save(); 180 180 int ret; 181 181 182 - rseq_signal_deliver(ksig, regs); 183 - 184 182 /* Are we from a system call? */ 185 183 if (in_syscall(regs)) { 186 184 /* Avoid additional syscall restarting via ret_from_exception */
+2 -4
arch/csky/kernel/stacktrace.c
··· 23 23 sp = user_stack_pointer(regs); 24 24 pc = instruction_pointer(regs); 25 25 } else if (task == NULL || task == current) { 26 - const register unsigned long current_sp __asm__ ("sp"); 27 26 const register unsigned long current_fp __asm__ ("r8"); 28 27 fp = current_fp; 29 - sp = current_sp; 28 + sp = current_stack_pointer; 30 29 pc = (unsigned long)walk_stackframe; 31 30 } else { 32 31 /* task blocked in __switch_to */ ··· 67 68 sp = user_stack_pointer(regs); 68 69 pc = instruction_pointer(regs); 69 70 } else if (task == NULL || task == current) { 70 - const register unsigned long current_sp __asm__ ("sp"); 71 - sp = current_sp; 71 + sp = current_stack_pointer; 72 72 pc = (unsigned long)walk_stackframe; 73 73 } else { 74 74 /* task blocked in __switch_to */