replace redundant code in flush_hash_page() with helper function
pte_get_hash_gslot().

Signed-off-by: Ram Pai <linux...@us.ibm.com>
---
 arch/powerpc/mm/hash_utils_64.c |   13 ++++---------
 1 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index d3604da..d863696 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -1615,23 +1615,18 @@ unsigned long pte_get_hash_gslot(unsigned long vpn, 
unsigned long shift,
 void flush_hash_page(unsigned long vpn, real_pte_t pte, int psize, int ssize,
                     unsigned long flags)
 {
-       unsigned long hash, index, shift, hidx, slot;
+       unsigned long index, shift, gslot;
        int local = flags & HPTE_LOCAL_UPDATE;
 
        DBG_LOW("flush_hash_page(vpn=%016lx)\n", vpn);
        pte_iterate_hashed_subpages(pte, psize, vpn, index, shift) {
-               hash = hpt_hash(vpn, shift, ssize);
-               hidx = __rpte_to_hidx(pte, index);
-               if (hidx & _PTEIDX_SECONDARY)
-                       hash = ~hash;
-               slot = (hash & htab_hash_mask) * HPTES_PER_GROUP;
-               slot += hidx & _PTEIDX_GROUP_IX;
-               DBG_LOW(" sub %ld: hash=%lx, hidx=%lx\n", index, slot, hidx);
+               gslot = pte_get_hash_gslot(vpn, shift, ssize, pte, index);
+               DBG_LOW(" sub %ld: gslot=%lx\n", index, gslot);
                /*
                 * We use same base page size and actual psize, because we don't
                 * use these functions for hugepage
                 */
-               mmu_hash_ops.hpte_invalidate(slot, vpn, psize, psize,
+               mmu_hash_ops.hpte_invalidate(gslot, vpn, psize, psize,
                                             ssize, local);
        } pte_iterate_hashed_end();
 
-- 
1.7.1

Reply via email to