From 6d2bf2e9186386e382e6d306aad02a47357bb6bc Mon Sep 17 00:00:00 2001 From: Andrea Arcangeli Date: Thu, 13 Jan 2011 15:47:15 -0800 Subject: [PATCH] --- yaml --- r: 230807 b: refs/heads/master c: 14d1a55cd26f1860f837f37ae42520c7c13b1347 h: refs/heads/master i: 230805: dc9d2a41a57a025a2ed2b65fee925bc9699b417b 230803: 4ee30f8efc5a081d67ceede3884d14bace3fc28a 230799: 566a5d333ee1c8c54ecac09d3f346c7bba31ac53 v: v3 --- [refs] | 2 +- trunk/mm/memory.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 459062985b06..70e45d473683 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 05b258e99725112c4febeab4fad23ea2c8908a3a +refs/heads/master: 14d1a55cd26f1860f837f37ae42520c7c13b1347 diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index 12ee1ea237f5..31250faff390 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -804,6 +804,7 @@ static inline int copy_pmd_range(struct mm_struct *dst_mm, struct mm_struct *src next = pmd_addr_end(addr, end); if (pmd_trans_huge(*src_pmd)) { int err; + VM_BUG_ON(next-addr != HPAGE_PMD_SIZE); err = copy_huge_pmd(dst_mm, src_mm, dst_pmd, src_pmd, addr, vma); if (err == -ENOMEM) @@ -1015,9 +1016,10 @@ static inline unsigned long zap_pmd_range(struct mmu_gather *tlb, do { next = pmd_addr_end(addr, end); if (pmd_trans_huge(*pmd)) { - if (next-addr != HPAGE_PMD_SIZE) + if (next-addr != HPAGE_PMD_SIZE) { + VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem)); split_huge_page_pmd(vma->vm_mm, pmd); - else if (zap_huge_pmd(tlb, vma, pmd)) { + } else if (zap_huge_pmd(tlb, vma, pmd)) { (*zap_work)--; continue; }