2005-10-21 03:41:25

by David Gibson

[permalink] [raw]
Subject: ppc64: Fix typo bug in iSeries hash code

Linus, please apply for 2.6.14 - this one-liner fixes a serious bug.

This patch fixes a stupid typo bug in the iSeries hash table code.
When we place a hash PTE in the secondary bucket, instead of setting
the SECONDARY flag bit, as we should, we (redundantly) set the VALID
flag. This was introduced with the patch abolishing bitfields from
the hash table code. Mea culpa, oops. It hasn't been noticed until
now because in practice we don't hit the secondary bucket terribly
often.

Signed-off-by: David Gibson <[email protected]>

Index: working-2.6/arch/ppc64/kernel/iSeries_htab.c
===================================================================
--- working-2.6.orig/arch/ppc64/kernel/iSeries_htab.c 2005-10-21 13:29:50.000000000 +1000
+++ working-2.6/arch/ppc64/kernel/iSeries_htab.c 2005-10-21 13:30:55.000000000 +1000
@@ -66,7 +66,7 @@
}

if (slot < 0) { /* MSB set means secondary group */
- vflags |= HPTE_V_VALID;
+ vflags |= HPTE_V_SECONDARY;
secondary = 1;
slot &= 0x7fffffffffffffff;
}


--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/people/dgibson