2002-10-19 04:10:43

by Brian Gerst

[permalink] [raw]
Subject: [PATCH] remove __verify_write from sh arch

diff -urN linux-2.5.42/arch/sh/mm/fault.c linux/arch/sh/mm/fault.c
--- linux-2.5.42/arch/sh/mm/fault.c Sun Sep 15 22:18:24 2002
+++ linux/arch/sh/mm/fault.c Sat Oct 12 10:39:38 2002
@@ -30,58 +30,6 @@
extern void die(const char *,struct pt_regs *,long);

/*
- * Ugly, ugly, but the goto's result in better assembly..
- */
-int __verify_write(const void * addr, unsigned long size)
-{
- struct vm_area_struct * vma;
- unsigned long start = (unsigned long) addr;
-
- if (!size)
- return 1;
-
- vma = find_vma(current->mm, start);
- if (!vma)
- goto bad_area;
- if (vma->vm_start > start)
- goto check_stack;
-
-good_area:
- if (!(vma->vm_flags & VM_WRITE))
- goto bad_area;
- size--;
- size += start & ~PAGE_MASK;
- size >>= PAGE_SHIFT;
- start &= PAGE_MASK;
-
- for (;;) {
- if (handle_mm_fault(current->mm, vma, start, 1) <= 0)
- goto bad_area;
- if (!size)
- break;
- size--;
- start += PAGE_SIZE;
- if (start < vma->vm_end)
- continue;
- vma = vma->vm_next;
- if (!vma || vma->vm_start != start)
- goto bad_area;
- if (!(vma->vm_flags & VM_WRITE))
- goto bad_area;;
- }
- return 1;
-
-check_stack:
- if (!(vma->vm_flags & VM_GROWSDOWN))
- goto bad_area;
- if (expand_stack(vma, start) == 0)
- goto good_area;
-
-bad_area:
- return 0;
-}
-
-/*
* This routine handles page faults. It determines the address,
* and the problem, and then passes it off to one of the appropriate
* routines.


Attachments:
sh-verify_write-1 (1.39 kB)