[PPC64] Hugepage bugfix

From: David Gibson
Date: Sun Jan 09 2005 - 23:23:43 EST


Andrew, Linus, please apply:

Fix a stupid unbalanced lock bug in the ppc64 hugepage code. Lead
rapidly to a crash if both CONFIG_HUGETLB_PAGE and CONFIG_PREEMPT were
enabled (even without actually using hugepages at all).

Signed-off-by: David Gibson <dwg@xxxxxxxxxxx>

Index: working-2.6/arch/ppc64/mm/hugetlbpage.c
===================================================================
--- working-2.6.orig/arch/ppc64/mm/hugetlbpage.c 2005-01-06 10:47:48.000000000 +1100
+++ working-2.6/arch/ppc64/mm/hugetlbpage.c 2005-01-10 15:16:25.142319552 +1100
@@ -745,7 +745,7 @@

pgdir = mm->context.huge_pgdir;
if (! pgdir)
- return;
+ goto out;

mm->context.huge_pgdir = NULL;

@@ -768,6 +768,7 @@
BUG_ON(memcmp(pgdir, empty_zero_page, PAGE_SIZE));
kmem_cache_free(zero_cache, pgdir);

+ out:
spin_unlock(&mm->page_table_lock);
}


--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist. NOT _the_ _other_ _way_
| _around_!
http://www.ozlabs.org/people/dgibson
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/