It wasn't just x86-64 that had hardcoded VM_FAULT_xxx numbers
Fix up arm26, cris, frv, m68k, parisc and sh64 too..
This commit is contained in:
parent
968002166c
commit
6e346228c7
6 changed files with 25 additions and 28 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue