powerpc/mm: Fix hash computation function
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Tue, 29 Jan 2013 19:40:42 +0000 (19:40 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 4 Feb 2013 04:15:08 +0000 (15:15 +1100)
commiteda8eebdd153c48a4e2a3a3ac3cd9e2e31f5c6b3
tree7de4fea5e76746a88043c726e6aba7b98ea687bc
parent689dfa894c57842a05bf6dc9f97e6bb71ec5f386
powerpc/mm: Fix hash computation function

The ASM version of hash computation function was truncating the upper bit.
Make the ASM version similar to hpt_hash function. Remove masking vsid bits.
Without this patch, we observed hang during bootup due to not satisfying page
fault request correctly. The fault handler used wrong hash values to update
the HPTE. Hence we kept looping with page fault.

hash_page(ea=000001003e260008, access=203, trap=300 ip=3fff91787134 dsisr 42000000
The computed value of hash 000000000f22f390
update: avpnv=4003e46054003e00, hash=000000000722f390, f=80000006, psize: 2 ...

BenH: The over-masking has been there for ever but only hurts with the
new 64T support introduced in 3.7

Reported-by: Mike Qiu <qiudayu@linux.vnet.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Tested-by: Mike Qiu <qiudayu@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: <stable@vger.kernel.org> [v3.7]
arch/powerpc/mm/hash_low_64.S