|
@@ -507,7 +507,6 @@ bail:
|
|
void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
|
|
void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
|
|
{
|
|
{
|
|
const struct exception_table_entry *entry;
|
|
const struct exception_table_entry *entry;
|
|
- unsigned long *stackend;
|
|
|
|
|
|
|
|
/* Are we prepared to handle this fault? */
|
|
/* Are we prepared to handle this fault? */
|
|
if ((entry = search_exception_tables(regs->nip)) != NULL) {
|
|
if ((entry = search_exception_tables(regs->nip)) != NULL) {
|
|
@@ -536,8 +535,7 @@ void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
|
|
printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n",
|
|
printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n",
|
|
regs->nip);
|
|
regs->nip);
|
|
|
|
|
|
- stackend = end_of_stack(current);
|
|
|
|
- if (*stackend != STACK_END_MAGIC)
|
|
|
|
|
|
+ if (task_stack_end_corrupted(current))
|
|
printk(KERN_ALERT "Thread overran stack, or stack corrupted\n");
|
|
printk(KERN_ALERT "Thread overran stack, or stack corrupted\n");
|
|
|
|
|
|
die("Kernel access of bad area", regs, sig);
|
|
die("Kernel access of bad area", regs, sig);
|