arch/csky patches for 6.2-rc1
The pull request we've done: - Revert rseq - Add current_stack_pointer support - Typo fixup -----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEE2KAv+isbWR/viAKHAXH1GYaIxXsFAmOf5qoSHGd1b3JlbkBr ZXJuZWwub3JnAAoJEAFx9RmGiMV7gO0QAJt9mMIwBFRj39JqpHHTOKA7L8fN+nru AxxsTDM2Q5Yv5BHlcrkKvecVd2DhKjpWevkfvOXuCgPAg+U6orEN/nYiUg2PHPNm Y2b4sYLxEi3BFYJz0QIeMPF0YnuppKtjIzpDQoLvhdTmeo73GrqkRRUQEIC2BV3j qRfUQfldyQQ5RoIW6sfo1bJvEBhKHydvzA1ZsY8ZkwvAVS5AfqYw7cNKOtgao0j5 DeAzpLeHJJr1Gtr729u2srB9diiygkN9WMOcsS7N0QfSEFcAPdowFnaT2l6Rn6cS 01Ds8oHiXfSGthX7u+YWEjmUxPuuU30X3Qxd2wlUQxeENFG257wrnYY7ChQxL/Ap 51RCXahHlQdZxee1SB/qLUb/7OcQpo3E4wxBs68o4lBeZo5nQvgOyaNSP4h8jLuD zaMLWg04tK/2jm7pW0D3SLArH3JeLPyL7nmrrdChnO/n9rNMosejjQEV/dW9A1ks QinWPMXjV56og0hF0OajKg6YNKlXl5RxQyCSiwfRKtY/iI9Yf+NDXuYeLD1hz29N /UhxfmFTO8gXReQaKWq8CBJj/K6QTsWE6TEmrCmn45DAB8ysi2N2dSSqmGZLlb7e DHIIl4VoGtZaT/NMgEKouOoJ/feb6cdWS+twobDW3LaPiqm8NzXGYXIpK/mZHxYo WZAi8sb41DRV =HwiV -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
96bab5b926
@ -9,6 +9,7 @@ config CSKY
|
||||
select ARCH_USE_BUILTIN_BSWAP
|
||||
select ARCH_USE_QUEUED_RWLOCKS
|
||||
select ARCH_USE_QUEUED_SPINLOCKS
|
||||
select ARCH_HAS_CURRENT_STACK_POINTER
|
||||
select ARCH_INLINE_READ_LOCK if !PREEMPTION
|
||||
select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION
|
||||
select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION
|
||||
@ -93,7 +94,6 @@ config CSKY
|
||||
select HAVE_PERF_USER_STACK_DUMP
|
||||
select HAVE_DMA_CONTIGUOUS
|
||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_RSEQ
|
||||
select HAVE_STACKPROTECTOR
|
||||
select HAVE_SYSCALL_TRACEPOINTS
|
||||
select MAY_HAVE_SPARSE_IRQ
|
||||
@ -269,7 +269,7 @@ menuconfig HAVE_TCM
|
||||
bool "Tightly-Coupled/Sram Memory"
|
||||
depends on !COMPILE_TEST
|
||||
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
|
||||
software interface, so that old tcm application codes could be
|
||||
re-used directly.
|
||||
|
@ -84,4 +84,6 @@ unsigned long __get_wchan(struct task_struct *p);
|
||||
|
||||
#define cpu_relax() barrier()
|
||||
|
||||
register unsigned long current_stack_pointer __asm__("sp");
|
||||
|
||||
#endif /* __ASM_CSKY_PROCESSOR_H */
|
||||
|
@ -54,7 +54,7 @@ ENTRY(csky_systemcall)
|
||||
|
||||
lrw r9, __NR_syscalls
|
||||
cmphs syscallid, r9 /* Check nr of syscall */
|
||||
bt 1f
|
||||
bt ret_from_exception
|
||||
|
||||
lrw r9, sys_call_table
|
||||
ixw r9, syscallid
|
||||
@ -80,11 +80,6 @@ ENTRY(csky_systemcall)
|
||||
jsr syscallid
|
||||
#endif
|
||||
stw a0, (sp, LSAVE_A0) /* Save return value */
|
||||
1:
|
||||
#ifdef CONFIG_DEBUG_RSEQ
|
||||
mov a0, sp
|
||||
jbsr rseq_syscall
|
||||
#endif
|
||||
jmpi ret_from_exception
|
||||
|
||||
csky_syscall_trace:
|
||||
@ -113,10 +108,6 @@ csky_syscall_trace:
|
||||
stw a0, (sp, LSAVE_A0) /* Save return value */
|
||||
|
||||
1:
|
||||
#ifdef CONFIG_DEBUG_RSEQ
|
||||
mov a0, sp
|
||||
jbsr rseq_syscall
|
||||
#endif
|
||||
mov a0, sp /* right now, sp --> pt_regs */
|
||||
jbsr syscall_trace_exit
|
||||
br ret_from_exception
|
||||
|
@ -179,8 +179,6 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
|
||||
sigset_t *oldset = sigmask_to_save();
|
||||
int ret;
|
||||
|
||||
rseq_signal_deliver(ksig, regs);
|
||||
|
||||
/* Are we from a system call? */
|
||||
if (in_syscall(regs)) {
|
||||
/* Avoid additional syscall restarting via ret_from_exception */
|
||||
|
@ -23,10 +23,9 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
|
||||
sp = user_stack_pointer(regs);
|
||||
pc = instruction_pointer(regs);
|
||||
} else if (task == NULL || task == current) {
|
||||
const register unsigned long current_sp __asm__ ("sp");
|
||||
const register unsigned long current_fp __asm__ ("r8");
|
||||
fp = current_fp;
|
||||
sp = current_sp;
|
||||
sp = current_stack_pointer;
|
||||
pc = (unsigned long)walk_stackframe;
|
||||
} else {
|
||||
/* task blocked in __switch_to */
|
||||
@ -68,8 +67,7 @@ static void notrace walk_stackframe(struct task_struct *task,
|
||||
sp = user_stack_pointer(regs);
|
||||
pc = instruction_pointer(regs);
|
||||
} else if (task == NULL || task == current) {
|
||||
const register unsigned long current_sp __asm__ ("sp");
|
||||
sp = current_sp;
|
||||
sp = current_stack_pointer;
|
||||
pc = (unsigned long)walk_stackframe;
|
||||
} else {
|
||||
/* task blocked in __switch_to */
|
||||
|
Loading…
Reference in New Issue
Block a user