summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/usermode-sources/files/usermode-sources-2.6.77666.patch')
-rw-r--r--sys-kernel/usermode-sources/files/usermode-sources-2.6.77666.patch170
1 files changed, 0 insertions, 170 deletions
diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.77666.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.77666.patch
deleted file mode 100644
index e0d393235123..000000000000
--- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.77666.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-diff -urNpX /usr/src/dontdiff linux-2.6.8.1-r9/mm/mmap.c linux-dsd/mm/mmap.c
---- linux-2.6.8.1-r9/mm/mmap.c 2005-03-16 14:56:52.000000000 +0000
-+++ linux-dsd/mm/mmap.c 2005-03-16 15:14:58.000000000 +0000
-@@ -1182,13 +1182,57 @@ out:
- return prev ? prev->vm_next : vma;
- }
-
-+/*
-+ * Verify that the stack growth is acceptable and
-+ * update accounting. This is shared with both the
-+ * grow-up and grow-down cases.
-+ */
-+static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, unsigned long grow)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ struct rlimit *rlim = current->rlim;
-+
-+ /* address space limit tests */
-+ rlim = current->rlim;
-+ if (mm->total_vm + grow > rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT)
-+ return -ENOMEM;
-+
-+ /* Stack limit test */
-+ if (size > rlim[RLIMIT_STACK].rlim_cur)
-+ return -ENOMEM;
-+
-+ /* mlock limit tests */
-+ if (vma->vm_flags & VM_LOCKED) {
-+ unsigned long locked;
-+ unsigned long limit;
-+ locked = mm->locked_vm + grow;
-+ limit = rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;
-+ if (locked > limit && !capable(CAP_IPC_LOCK))
-+ return -ENOMEM;
-+ }
-+
-+ /*
-+ * Overcommit.. This must be the final test, as it will
-+ * update security statistics.
-+ */
-+ if (security_vm_enough_memory(grow))
-+ return -ENOMEM;
-+
-+ /* Ok, everything looks good - let it rip */
-+ mm->total_vm += grow;
-+ if (vma->vm_flags & VM_LOCKED)
-+ mm->locked_vm += grow;
-+ __vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow);
-+ return 0;
-+}
-+
- #ifdef CONFIG_STACK_GROWSUP
- /*
- * vma is the first one with address > vma->vm_end. Have to extend vma.
- */
- int expand_stack(struct vm_area_struct * vma, unsigned long address)
- {
-- unsigned long grow;
-+ int error;
-
- if (!(vma->vm_flags & VM_GROWSUP))
- return -EFAULT;
-@@ -1208,20 +1252,18 @@ int expand_stack(struct vm_area_struct *
- */
- address += 4 + PAGE_SIZE - 1;
- address &= PAGE_MASK;
-- grow = (address - vma->vm_end) >> PAGE_SHIFT;
-+ error = 0;
-
-- /* Overcommit.. */
-- if (security_vm_enough_memory(grow)) {
-- anon_vma_unlock(vma);
-- return -ENOMEM;
-- }
--
-- if (address - vma->vm_start > current->rlim[RLIMIT_STACK].rlim_cur ||
-- ((vma->vm_mm->total_vm + grow) << PAGE_SHIFT) >
-- current->rlim[RLIMIT_AS].rlim_cur) {
-- anon_vma_unlock(vma);
-- vm_unacct_memory(grow);
-- return -ENOMEM;
-+ /* Somebody else might have raced and expanded it already */
-+ if (address > vma->vm_end) {
-+ unsigned long size, grow;
-+
-+ size = address - vma->vm_start;
-+ grow = (address - vma->vm_end) >> PAGE_SHIFT;
-+
-+ error = acct_stack_growth(vma, size, grow);
-+ if (!error)
-+ vma->vm_end = address;
- }
- if ((vma->vm_flags & VM_LOCKED) && !capable(CAP_IPC_LOCK) &&
- ((vma->vm_mm->locked_vm + grow) << PAGE_SHIFT) >
-@@ -1230,12 +1272,12 @@ int expand_stack(struct vm_area_struct *
- vm_unacct_memory(grow);
- return -ENOMEM;
- }
-- vma->vm_end = address;
-- vma->vm_mm->total_vm += grow;
-- if (vma->vm_flags & VM_LOCKED)
-- vma->vm_mm->locked_vm += grow;
-+
-+ error = acct_stack_growth(vma, size, grow);
-+ if (!error)
-+ vma->vm_end = address;
- anon_vma_unlock(vma);
-- return 0;
-+ return error;
- }
-
- struct vm_area_struct *
-@@ -1260,7 +1302,7 @@ find_extend_vma(struct mm_struct *mm, un
- */
- int expand_stack(struct vm_area_struct *vma, unsigned long address)
- {
-- unsigned long grow;
-+ int error;
-
- /*
- * We must make sure the anon_vma is allocated
-@@ -1276,20 +1318,20 @@ int expand_stack(struct vm_area_struct *
- * anon_vma lock to serialize against concurrent expand_stacks.
- */
- address &= PAGE_MASK;
-- grow = (vma->vm_start - address) >> PAGE_SHIFT;
-+ error = 0;
-
-- /* Overcommit.. */
-- if (security_vm_enough_memory(grow)) {
-- anon_vma_unlock(vma);
-- return -ENOMEM;
-- }
--
-- if (vma->vm_end - address > current->rlim[RLIMIT_STACK].rlim_cur ||
-- ((vma->vm_mm->total_vm + grow) << PAGE_SHIFT) >
-- current->rlim[RLIMIT_AS].rlim_cur) {
-- anon_vma_unlock(vma);
-- vm_unacct_memory(grow);
-- return -ENOMEM;
-+ /* Somebody else might have raced and expanded it already */
-+ if (address < vma->vm_start) {
-+ unsigned long size, grow;
-+
-+ size = vma->vm_end - address;
-+ grow = (vma->vm_start - address) >> PAGE_SHIFT;
-+
-+ error = acct_stack_growth(vma, size, grow);
-+ if (!error) {
-+ vma->vm_start = address;
-+ vma->vm_pgoff -= grow;
-+ }
- }
- if ((vma->vm_flags & VM_LOCKED) && !capable(CAP_IPC_LOCK) &&
- ((vma->vm_mm->locked_vm + grow) << PAGE_SHIFT) >
-@@ -1298,13 +1340,8 @@ int expand_stack(struct vm_area_struct *
- vm_unacct_memory(grow);
- return -ENOMEM;
- }
-- vma->vm_start = address;
-- vma->vm_pgoff -= grow;
-- vma->vm_mm->total_vm += grow;
-- if (vma->vm_flags & VM_LOCKED)
-- vma->vm_mm->locked_vm += grow;
- anon_vma_unlock(vma);
-- return 0;
-+ return error;
- }
-
- struct vm_area_struct *