提交 6e346228 编写于 作者: L Linus Torvalds

It wasn't just x86-64 that had hardcoded VM_FAULT_xxx numbers

Fix up arm26, cris, frv, m68k, parisc and sh64 too..
上级 96800216
......@@ -176,12 +176,12 @@ __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
* Handle the "normal" cases first - successful and sigbus
*/
switch (fault) {
case 2:
case VM_FAULT_MAJOR:
tsk->maj_flt++;
return fault;
case 1:
case VM_FAULT_MINOR:
tsk->min_flt++;
case 0:
case VM_FAULT_SIGBUS:
return fault;
}
......@@ -226,14 +226,11 @@ int do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
/*
* Handle the "normal" case first
*/
if (fault > 0)
switch (fault) {
case VM_FAULT_MINOR:
case VM_FAULT_MAJOR:
return 0;
/*
* We had some memory, but were unable to
* successfully fix up this page fault.
*/
if (fault == 0){
case VM_FAULT_SIGBUS:
goto do_sigbus;
}
......
......@@ -284,13 +284,13 @@ do_page_fault(unsigned long address, struct pt_regs *regs,
*/
switch (handle_mm_fault(mm, vma, address, writeaccess & 1)) {
case 1:
case VM_FAULT_MINOR:
tsk->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
tsk->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto do_sigbus;
default:
goto out_of_memory;
......
......@@ -163,13 +163,13 @@ asmlinkage void do_page_fault(int datammu, unsigned long esr0, unsigned long ear
* the fault.
*/
switch (handle_mm_fault(mm, vma, ear0, write)) {
case 1:
case VM_FAULT_MINOR:
current->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
current->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto do_sigbus;
default:
goto out_of_memory;
......
......@@ -160,13 +160,13 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
printk("handle_mm_fault returns %d\n",fault);
#endif
switch (fault) {
case 1:
case VM_FAULT_MINOR:
current->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
current->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto bus_err;
default:
goto out_of_memory;
......
......@@ -178,17 +178,17 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
*/
switch (handle_mm_fault(mm, vma, address, (acc_type & VM_WRITE) != 0)) {
case 1:
case VM_FAULT_MINOR:
++current->min_flt;
break;
case 2:
case VM_FAULT_MAJOR:
++current->maj_flt;
break;
case 0:
case VM_FAULT_SIGBUS:
/*
* We ran out of memory, or some other thing happened
* to us that made us unable to handle the page fault
* gracefully.
* We hit a hared mapping outside of the file, or some
* other thing happened to us that made us unable to
* handle the page fault gracefully.
*/
goto bad_area;
default:
......
......@@ -223,13 +223,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess,
*/
survive:
switch (handle_mm_fault(mm, vma, address, writeaccess)) {
case 1:
case VM_FAULT_MINOR:
tsk->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
tsk->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto do_sigbus;
default:
goto out_of_memory;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册