Commit 96bab5b9 authored by Linus Torvalds's avatar Linus Torvalds

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
parents 5f6e430f 7e200490
...@@ -9,6 +9,7 @@ config CSKY ...@@ -9,6 +9,7 @@ config CSKY
select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_BUILTIN_BSWAP
select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_RWLOCKS
select ARCH_USE_QUEUED_SPINLOCKS select ARCH_USE_QUEUED_SPINLOCKS
select ARCH_HAS_CURRENT_STACK_POINTER
select ARCH_INLINE_READ_LOCK if !PREEMPTION select ARCH_INLINE_READ_LOCK if !PREEMPTION
select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION
select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION
...@@ -93,7 +94,6 @@ config CSKY ...@@ -93,7 +94,6 @@ config CSKY
select HAVE_PERF_USER_STACK_DUMP select HAVE_PERF_USER_STACK_DUMP
select HAVE_DMA_CONTIGUOUS select HAVE_DMA_CONTIGUOUS
select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_RSEQ
select HAVE_STACKPROTECTOR select HAVE_STACKPROTECTOR
select HAVE_SYSCALL_TRACEPOINTS select HAVE_SYSCALL_TRACEPOINTS
select MAY_HAVE_SPARSE_IRQ select MAY_HAVE_SPARSE_IRQ
...@@ -269,7 +269,7 @@ menuconfig HAVE_TCM ...@@ -269,7 +269,7 @@ menuconfig HAVE_TCM
bool "Tightly-Coupled/Sram Memory" bool "Tightly-Coupled/Sram Memory"
depends on !COMPILE_TEST depends on !COMPILE_TEST
help help
The implementation are not only used by TCM (Tightly-Coupled Meory) The implementation are not only used by TCM (Tightly-Coupled Memory)
but also used by sram on SOC bus. It follow existed linux tcm but also used by sram on SOC bus. It follow existed linux tcm
software interface, so that old tcm application codes could be software interface, so that old tcm application codes could be
re-used directly. re-used directly.
......
...@@ -84,4 +84,6 @@ unsigned long __get_wchan(struct task_struct *p); ...@@ -84,4 +84,6 @@ unsigned long __get_wchan(struct task_struct *p);
#define cpu_relax() barrier() #define cpu_relax() barrier()
register unsigned long current_stack_pointer __asm__("sp");
#endif /* __ASM_CSKY_PROCESSOR_H */ #endif /* __ASM_CSKY_PROCESSOR_H */
...@@ -54,7 +54,7 @@ ENTRY(csky_systemcall) ...@@ -54,7 +54,7 @@ ENTRY(csky_systemcall)
lrw r9, __NR_syscalls lrw r9, __NR_syscalls
cmphs syscallid, r9 /* Check nr of syscall */ cmphs syscallid, r9 /* Check nr of syscall */
bt 1f bt ret_from_exception
lrw r9, sys_call_table lrw r9, sys_call_table
ixw r9, syscallid ixw r9, syscallid
...@@ -80,11 +80,6 @@ ENTRY(csky_systemcall) ...@@ -80,11 +80,6 @@ ENTRY(csky_systemcall)
jsr syscallid jsr syscallid
#endif #endif
stw a0, (sp, LSAVE_A0) /* Save return value */ stw a0, (sp, LSAVE_A0) /* Save return value */
1:
#ifdef CONFIG_DEBUG_RSEQ
mov a0, sp
jbsr rseq_syscall
#endif
jmpi ret_from_exception jmpi ret_from_exception
csky_syscall_trace: csky_syscall_trace:
...@@ -113,10 +108,6 @@ csky_syscall_trace: ...@@ -113,10 +108,6 @@ csky_syscall_trace:
stw a0, (sp, LSAVE_A0) /* Save return value */ stw a0, (sp, LSAVE_A0) /* Save return value */
1: 1:
#ifdef CONFIG_DEBUG_RSEQ
mov a0, sp
jbsr rseq_syscall
#endif
mov a0, sp /* right now, sp --> pt_regs */ mov a0, sp /* right now, sp --> pt_regs */
jbsr syscall_trace_exit jbsr syscall_trace_exit
br ret_from_exception br ret_from_exception
......
...@@ -179,8 +179,6 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) ...@@ -179,8 +179,6 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
sigset_t *oldset = sigmask_to_save(); sigset_t *oldset = sigmask_to_save();
int ret; int ret;
rseq_signal_deliver(ksig, regs);
/* Are we from a system call? */ /* Are we from a system call? */
if (in_syscall(regs)) { if (in_syscall(regs)) {
/* Avoid additional syscall restarting via ret_from_exception */ /* Avoid additional syscall restarting via ret_from_exception */
......
...@@ -23,10 +23,9 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs, ...@@ -23,10 +23,9 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
sp = user_stack_pointer(regs); sp = user_stack_pointer(regs);
pc = instruction_pointer(regs); pc = instruction_pointer(regs);
} else if (task == NULL || task == current) { } else if (task == NULL || task == current) {
const register unsigned long current_sp __asm__ ("sp");
const register unsigned long current_fp __asm__ ("r8"); const register unsigned long current_fp __asm__ ("r8");
fp = current_fp; fp = current_fp;
sp = current_sp; sp = current_stack_pointer;
pc = (unsigned long)walk_stackframe; pc = (unsigned long)walk_stackframe;
} else { } else {
/* task blocked in __switch_to */ /* task blocked in __switch_to */
...@@ -68,8 +67,7 @@ static void notrace walk_stackframe(struct task_struct *task, ...@@ -68,8 +67,7 @@ static void notrace walk_stackframe(struct task_struct *task,
sp = user_stack_pointer(regs); sp = user_stack_pointer(regs);
pc = instruction_pointer(regs); pc = instruction_pointer(regs);
} else if (task == NULL || task == current) { } else if (task == NULL || task == current) {
const register unsigned long current_sp __asm__ ("sp"); sp = current_stack_pointer;
sp = current_sp;
pc = (unsigned long)walk_stackframe; pc = (unsigned long)walk_stackframe;
} else { } else {
/* task blocked in __switch_to */ /* task blocked in __switch_to */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment