csky: fixup save hi,lo,dspcr regs in switch_stack.
HI, LO, DSPCR registers are 807/810 related regs and no need for 610/860. All of the regs must be saved in pt_regs and switch_stack. This patch fixup saving dspcr reg in switch_stack and pt_regs. Signed-off-by: Guo Ren <ren_guo@c-sky.com>
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include <asm/cache.h>
|
||||
#include <abi/reg_ops.h>
|
||||
#include <abi/regdef.h>
|
||||
#include <abi/switch_context.h>
|
||||
#ifdef CONFIG_CPU_HAS_FPU
|
||||
#include <abi/fpu.h>
|
||||
#endif
|
||||
@@ -50,8 +51,6 @@ struct thread_struct {
|
||||
unsigned long ksp; /* kernel stack pointer */
|
||||
unsigned long sr; /* saved status register */
|
||||
unsigned long esp0; /* points to SR of stack frame */
|
||||
unsigned long hi;
|
||||
unsigned long lo;
|
||||
|
||||
/* Other stuff associated with the thread. */
|
||||
unsigned long address; /* Last user fault */
|
||||
|
@@ -36,7 +36,7 @@ struct pt_regs {
|
||||
|
||||
unsigned long rhi;
|
||||
unsigned long rlo;
|
||||
unsigned long pad; /* reserved */
|
||||
unsigned long dcsr;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -48,43 +48,6 @@ struct user_fp {
|
||||
unsigned long reserved;
|
||||
};
|
||||
|
||||
/*
|
||||
* Switch stack for switch_to after push pt_regs.
|
||||
*
|
||||
* ABI_CSKYV2: r4 ~ r11, r15 ~ r17, r26 ~ r30;
|
||||
* ABI_CSKYV1: r8 ~ r14, r15;
|
||||
*/
|
||||
struct switch_stack {
|
||||
#if defined(__CSKYABIV2__)
|
||||
unsigned long r4;
|
||||
unsigned long r5;
|
||||
unsigned long r6;
|
||||
unsigned long r7;
|
||||
unsigned long r8;
|
||||
unsigned long r9;
|
||||
unsigned long r10;
|
||||
unsigned long r11;
|
||||
#else
|
||||
unsigned long r8;
|
||||
unsigned long r9;
|
||||
unsigned long r10;
|
||||
unsigned long r11;
|
||||
unsigned long r12;
|
||||
unsigned long r13;
|
||||
unsigned long r14;
|
||||
#endif
|
||||
unsigned long r15;
|
||||
#if defined(__CSKYABIV2__)
|
||||
unsigned long r16;
|
||||
unsigned long r17;
|
||||
unsigned long r26;
|
||||
unsigned long r27;
|
||||
unsigned long r28;
|
||||
unsigned long r29;
|
||||
unsigned long r30;
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define PS_S 0x80000000 /* Supervisor Mode */
|
||||
|
Reference in New Issue
Block a user