git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'interrupt-rework' into prog-loader
[lunaix-os.git]
/
lunaix-os
/
kernel
/
asm
/
x86
/
pfault.c
diff --git
a/lunaix-os/kernel/asm/x86/pfault.c
b/lunaix-os/kernel/asm/x86/pfault.c
index f6c4355a1c0fabc58fc745b315bd4d74d0c604c6..2b0a8f1a4e81c234dbb09002fc82bab54126b2c6 100644
(file)
--- a/
lunaix-os/kernel/asm/x86/pfault.c
+++ b/
lunaix-os/kernel/asm/x86/pfault.c
@@
-38,7
+38,7
@@
intr_routine_page_fault(const isr_param* param)
goto segv_term;
}
goto segv_term;
}
- if (!SEL_RPL(param->cs)) {
+ if (!SEL_RPL(param->
execp->
cs)) {
// 如果是内核页错误……
if (do_kernel(&mapping)) {
return;
// 如果是内核页错误……
if (do_kernel(&mapping)) {
return;
@@
-130,8
+130,8
@@
segv_term:
kprintf(KERROR "(pid: %d) Segmentation fault on %p (%p:%p)\n",
__current->pid,
ptr,
kprintf(KERROR "(pid: %d) Segmentation fault on %p (%p:%p)\n",
__current->pid,
ptr,
- param->cs,
- param->eip);
+ param->
execp->
cs,
+ param->e
xecp->e
ip);
__SIGSET(__current->sig_pending, _SIGSEGV);
schedule();
// should not reach
__SIGSET(__current->sig_pending, _SIGSEGV);
schedule();
// should not reach