diff options
Diffstat (limited to 'arch/riscv/kernel')
| -rw-r--r-- | arch/riscv/kernel/entry.S | 8 | ||||
| -rw-r--r-- | arch/riscv/kernel/process.c | 4 | ||||
| -rw-r--r-- | arch/riscv/kernel/syscall_table.c | 1 | ||||
| -rw-r--r-- | arch/riscv/kernel/vdso/flush_icache.S | 1 | 
4 files changed, 6 insertions, 8 deletions
| diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S index 20ee86f782a9..7404ec222406 100644 --- a/arch/riscv/kernel/entry.S +++ b/arch/riscv/kernel/entry.S @@ -196,7 +196,7 @@ handle_syscall:  	addi s2, s2, 0x4  	REG_S s2, PT_SEPC(sp)  	/* System calls run with interrupts enabled */ -	csrs sstatus, SR_IE +	csrs sstatus, SR_SIE  	/* Trace syscalls, but only if requested by the user. */  	REG_L t0, TASK_TI_FLAGS(tp)  	andi t0, t0, _TIF_SYSCALL_TRACE @@ -224,8 +224,8 @@ ret_from_syscall:  ret_from_exception:  	REG_L s0, PT_SSTATUS(sp) -	csrc sstatus, SR_IE -	andi s0, s0, SR_PS +	csrc sstatus, SR_SIE +	andi s0, s0, SR_SPP  	bnez s0, restore_all  resume_userspace: @@ -255,7 +255,7 @@ work_pending:  	bnez s1, work_resched  work_notifysig:  	/* Handle pending signals and notify-resume requests */ -	csrs sstatus, SR_IE /* Enable interrupts for do_notify_resume() */ +	csrs sstatus, SR_SIE /* Enable interrupts for do_notify_resume() */  	move a0, sp /* pt_regs */  	move a1, s0 /* current_thread_info->flags */  	tail do_notify_resume diff --git a/arch/riscv/kernel/process.c b/arch/riscv/kernel/process.c index 0d90dcc1fbd3..d74d4adf2d54 100644 --- a/arch/riscv/kernel/process.c +++ b/arch/riscv/kernel/process.c @@ -76,7 +76,7 @@ void show_regs(struct pt_regs *regs)  void start_thread(struct pt_regs *regs, unsigned long pc,  	unsigned long sp)  { -	regs->sstatus = SR_PIE /* User mode, irqs on */ | SR_FS_INITIAL; +	regs->sstatus = SR_SPIE /* User mode, irqs on */ | SR_FS_INITIAL;  	regs->sepc = pc;  	regs->sp = sp;  	set_fs(USER_DS); @@ -110,7 +110,7 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,  		const register unsigned long gp __asm__ ("gp");  		memset(childregs, 0, sizeof(struct pt_regs));  		childregs->gp = gp; -		childregs->sstatus = SR_PS | SR_PIE; /* Supervisor, irqs on */ +		childregs->sstatus = SR_SPP | SR_SPIE; /* Supervisor, irqs on */  		p->thread.ra = (unsigned long)ret_from_kernel_thread;  		p->thread.s[0] = usp; /* fn */ diff --git a/arch/riscv/kernel/syscall_table.c b/arch/riscv/kernel/syscall_table.c index a5bd6401f95e..ade52b903a43 100644 --- a/arch/riscv/kernel/syscall_table.c +++ b/arch/riscv/kernel/syscall_table.c @@ -23,5 +23,4 @@  void *sys_call_table[__NR_syscalls] = {  	[0 ... __NR_syscalls - 1] = sys_ni_syscall,  #include <asm/unistd.h> -#include <asm/vdso-syscalls.h>  }; diff --git a/arch/riscv/kernel/vdso/flush_icache.S b/arch/riscv/kernel/vdso/flush_icache.S index b0fbad74e873..023e4d4aef58 100644 --- a/arch/riscv/kernel/vdso/flush_icache.S +++ b/arch/riscv/kernel/vdso/flush_icache.S @@ -13,7 +13,6 @@  #include <linux/linkage.h>  #include <asm/unistd.h> -#include <asm/vdso-syscalls.h>  	.text  /* int __vdso_flush_icache(void *start, void *end, unsigned long flags); */ |