Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f25a967 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

signal/riscv: Remove tsk parameter from do_trap



The do_trap function is always called with tsk == current.
Make that obvious by removing the tsk parameter.

This also makes it clear that do_trap calls force_sig_fault
on the current task.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent e1656829
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ struct task_struct;

extern void die(struct pt_regs *regs, const char *str);
extern void do_trap(struct pt_regs *regs, int signo, int code,
	unsigned long addr, struct task_struct *tsk);
	unsigned long addr);

#endif /* !__ASSEMBLY__ */

+4 −3
Original line number Diff line number Diff line
@@ -63,9 +63,10 @@ void die(struct pt_regs *regs, const char *str)
		do_exit(SIGSEGV);
}

void do_trap(struct pt_regs *regs, int signo, int code,
	unsigned long addr, struct task_struct *tsk)
void do_trap(struct pt_regs *regs, int signo, int code, unsigned long addr)
{
	struct task_struct *tsk = current;

	if (show_unhandled_signals && unhandled_signal(tsk, signo)
	    && printk_ratelimit()) {
		pr_info("%s[%d]: unhandled signal %d code 0x%x at 0x" REG_FMT,
@@ -82,7 +83,7 @@ static void do_trap_error(struct pt_regs *regs, int signo, int code,
	unsigned long addr, const char *str)
{
	if (user_mode(regs)) {
		do_trap(regs, signo, code, addr, current);
		do_trap(regs, signo, code, addr);
	} else {
		if (!fixup_exception(regs))
			die(regs, str);
+3 −3
Original line number Diff line number Diff line
@@ -181,7 +181,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
	up_read(&mm->mmap_sem);
	/* User mode accesses just cause a SIGSEGV */
	if (user_mode(regs)) {
		do_trap(regs, SIGSEGV, code, addr, tsk);
		do_trap(regs, SIGSEGV, code, addr);
		return;
	}

@@ -217,7 +217,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
	/* Kernel mode? Handle exceptions or die */
	if (!user_mode(regs))
		goto no_context;
	do_trap(regs, SIGBUS, BUS_ADRERR, addr, tsk);
	do_trap(regs, SIGBUS, BUS_ADRERR, addr);
	return;

vmalloc_fault:
@@ -231,7 +231,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs)

		/* User mode accesses just cause a SIGSEGV */
		if (user_mode(regs))
			return do_trap(regs, SIGSEGV, code, addr, tsk);
			return do_trap(regs, SIGSEGV, code, addr);

		/*
		 * Synchronize this task's top level page-table