2005-01-10 04:22:45

by David Gibson

[permalink] [raw]
Subject: [PPC64] Hugepage bugfix

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 <[email protected]>

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


2005-01-10 05:04:58

by William Lee Irwin III

[permalink] [raw]
Subject: Re: [PPC64] Hugepage bugfix

On Tue, Jan 11, 2005 at 02:55:20AM +1100, David Gibson wrote:
> 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 <[email protected]>

Acked-by: William Irwin <[email protected]>