From: Chris Wright Date: Tue, 13 Sep 2005 16:56:37 +0000 (-0700) Subject: Add fix for MPOL_F_VERIFY from Andi. X-Git-Tag: v2.6.13.2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1c2bf823383fa68a2dee5cdfb5cebfd0ecb2cda8;p=thirdparty%2Fkernel%2Fstable-queue.git Add fix for MPOL_F_VERIFY from Andi. --- diff --git a/queue/fix-MPOL_F_VERIFY.patch b/queue/fix-MPOL_F_VERIFY.patch new file mode 100644 index 00000000000..5031a0e96ad --- /dev/null +++ b/queue/fix-MPOL_F_VERIFY.patch @@ -0,0 +1,38 @@ +From stable-bounces@linux.kernel.org Tue Sep 13 05:01:26 2005 +From: Andi Kleen +To: stable@kernel.org +Date: Tue, 13 Sep 2005 14:01:08 +0200 +Cc: linux-kernel@vger.kernel.org +Subject: [PATCH] Fix MPOL_F_VERIFY + +There was a pretty bad bug in there that the code would +always check the full VMA, not the range the user requested. + +When the VMA to be checked was merged with the previous VMA this +could lead to spurious failures. + +Signed-off-by: Andi Kleen +Signed-off-by: Chris Wright +--- + mm/mempolicy.c | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletion(-) + +Index: linux-2.6.13.y/mm/mempolicy.c +=================================================================== +--- linux-2.6.13.y.orig/mm/mempolicy.c ++++ linux-2.6.13.y/mm/mempolicy.c +@@ -333,8 +333,13 @@ check_range(struct mm_struct *mm, unsign + if (prev && prev->vm_end < vma->vm_start) + return ERR_PTR(-EFAULT); + if ((flags & MPOL_MF_STRICT) && !is_vm_hugetlb_page(vma)) { ++ unsigned long endvma = vma->vm_end; ++ if (endvma > end) ++ endvma = end; ++ if (vma->vm_start > start) ++ start = vma->vm_start; + err = check_pgd_range(vma->vm_mm, +- vma->vm_start, vma->vm_end, nodes); ++ start, endvma, nodes); + if (err) { + first = ERR_PTR(err); + break; diff --git a/queue/series b/queue/series index 130574a4970..0adf432514b 100644 --- a/queue/series +++ b/queue/series @@ -4,3 +4,4 @@ sungem-enable-and-map-pci-rom-properly.patch sunhme-enable-and-map-pci-rom-properly.patch netfilter-fix-dhcp-masquerade-problem.patch jfs_delete_inode-must-call-clear_inode.patch +fix-MPOL_F_VERIFY.patch