Commit 20dda87b authored by John David Anglin's avatar John David Anglin Committed by Helge Deller
Browse files

parisc: Enhance page fault termination message



In debugging kernel panics, I believe it is useful to know what type
of page fault caused the termination. "Bad Address" is too vague.

Signed-off-by: default avatarJohn David Anglin <dave.anglin@bell.net>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent 9d90a908
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -266,11 +266,14 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
	unsigned long acc_type;
	vm_fault_t fault = 0;
	unsigned int flags;
	char *msg;

	tsk = current;
	mm = tsk->mm;
	if (!mm)
	if (!mm) {
		msg = "Page fault: no context";
		goto no_context;
	}

	flags = FAULT_FLAG_DEFAULT;
	if (user_mode(regs))
@@ -406,6 +409,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
		force_sig_fault(signo, si_code, (void __user *) address);
		return;
	}
	msg = "Page fault: bad address";

no_context:

@@ -413,11 +417,13 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
		return;
	}

	parisc_terminate("Bad Address (null pointer deref?)", regs, code, address);
	parisc_terminate(msg, regs, code, address);

out_of_memory:
	mmap_read_unlock(mm);
	if (!user_mode(regs))
	if (!user_mode(regs)) {
		msg = "Page fault: out of memory";
		goto no_context;
	}
	pagefault_out_of_memory();
}