kernel - don't print info about scheduled process if pagefault happened in kernel.
This commit is contained in:
parent
713454aca7
commit
7c5e1d1b29
@ -51,15 +51,19 @@ PRIVATE void pagefault( struct proc *pr,
|
|||||||
pr->p_reg.pc = (reg_t) phys_copy_fault;
|
pr->p_reg.pc = (reg_t) phys_copy_fault;
|
||||||
pr->p_reg.retreg = pagefaultcr2;
|
pr->p_reg.retreg = pagefaultcr2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(is_nested) {
|
||||||
|
panic("pagefault in kernel at address 0x%lx", pagefaultcr2);
|
||||||
|
}
|
||||||
|
|
||||||
/* System processes that don't have their own page table can't
|
/* System processes that don't have their own page table can't
|
||||||
* have page faults. VM does have its own page table but also
|
* have page faults. VM does have its own page table but also
|
||||||
* can't have page faults (because VM has to handle them).
|
* can't have page faults (because VM has to handle them).
|
||||||
*/
|
*/
|
||||||
if(is_nested || (pr->p_endpoint <= INIT_PROC_NR &&
|
if((pr->p_endpoint <= INIT_PROC_NR &&
|
||||||
!(pr->p_misc_flags & MF_FULLVM)) || pr->p_endpoint == VM_PROC_NR) {
|
!(pr->p_misc_flags & MF_FULLVM)) || pr->p_endpoint == VM_PROC_NR) {
|
||||||
/* Page fault we can't / don't want to
|
/* Page fault we can't / don't want to
|
||||||
* handle.
|
* handle.
|
||||||
@ -70,7 +74,7 @@ PRIVATE void pagefault( struct proc *pr,
|
|||||||
proc_stacktrace(pr);
|
proc_stacktrace(pr);
|
||||||
printf("pc of pagefault: 0x%lx\n", frame->eip);
|
printf("pc of pagefault: 0x%lx\n", frame->eip);
|
||||||
panic("page fault in system process: %d", pr->p_endpoint);
|
panic("page fault in system process: %d", pr->p_endpoint);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user