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

Commit 351b6825 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

signal: Explicitly call force_sig_fault on current



Update the calls of force_sig_fault that pass in a variable that is
set to current earlier to explicitly use current.

This is to make the next change that removes the task parameter
from force_sig_fault easier to verify.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent ec74e920
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ unhandled_exception(const char *str, struct pt_regs *regs,

		tsk->thread.fault_address = (__force unsigned int)addr;

		force_sig_fault(signo, si_code, addr, tsk);
		force_sig_fault(signo, si_code, addr, current);

	} else {
		/* If not due to copy_(to|from)_user, we are doomed */
+2 −2
Original line number Diff line number Diff line
@@ -202,7 +202,7 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
	/* User mode accesses just cause a SIGSEGV */
	if (user_mode(regs)) {
		tsk->thread.fault_address = address;
		force_sig_fault(SIGSEGV, si_code, (void __user *)address, tsk);
		force_sig_fault(SIGSEGV, si_code, (void __user *)address, current);
		return;
	}

@@ -237,5 +237,5 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
		goto no_context;

	tsk->thread.fault_address = address;
	force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address, tsk);
	force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address, current);
}
+1 −1
Original line number Diff line number Diff line
@@ -184,7 +184,7 @@ __do_user_fault(unsigned long addr, unsigned int fsr, unsigned int sig,
	tsk->thread.address = addr;
	tsk->thread.error_code = fsr;
	tsk->thread.trap_no = 14;
	force_sig_fault(sig, code, (void __user *)addr, tsk);
	force_sig_fault(sig, code, (void __user *)addr, current);
}

void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
+2 −2
Original line number Diff line number Diff line
@@ -223,7 +223,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,
			pr_cont("\n");
		}
		current->thread.trap_nr = (regs->cp0_cause >> 2) & 0x1f;
		force_sig_fault(SIGSEGV, si_code, (void __user *)address, tsk);
		force_sig_fault(SIGSEGV, si_code, (void __user *)address, current);
		return;
	}

@@ -279,7 +279,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,
#endif
	current->thread.trap_nr = (regs->cp0_cause >> 2) & 0x1f;
	tsk->thread.cp0_badvaddr = address;
	force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address, tsk);
	force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address, current);

	return;
#ifndef CONFIG_64BIT
+1 −1
Original line number Diff line number Diff line
@@ -263,7 +263,7 @@ static void send_sigtrap(struct pt_regs *regs, int error_code, int si_code)
	tsk->thread.error_code = error_code;

	force_sig_fault(SIGTRAP, si_code,
			(void __user *)instruction_pointer(regs), tsk);
			(void __user *)instruction_pointer(regs), current);
}

void do_debug_trap(unsigned long entry, unsigned long addr,
Loading