[PATCH] ppc64: Remove redundant uses of physRpn_to_absRpn
authorMichael Ellerman <michael@ellerman.id.au>
Wed, 3 Aug 2005 10:21:24 +0000 (20:21 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 29 Aug 2005 00:53:36 +0000 (10:53 +1000)
physRpn_to_absRpn is a no-op on non-iSeries platforms, remove the two
redundant calls.

There's only one caller on iSeries so fold the logic in there so we can get
rid of it completely.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/ppc64/kernel/iSeries_htab.c
arch/ppc64/kernel/pSeries_lpar.c
arch/ppc64/mm/hash_native.c
include/asm-ppc64/abs_addr.h

index b0250ae4a72a5954f77bc21fb600080aea83723a..2192055a90a07ba3f34f074e70cb75225d124fdb 100644 (file)
@@ -41,6 +41,7 @@ static long iSeries_hpte_insert(unsigned long hpte_group, unsigned long va,
                                unsigned long prpn, unsigned long vflags,
                                unsigned long rflags)
 {
+       unsigned long arpn;
        long slot;
        hpte_t lhpte;
        int secondary = 0;
@@ -70,8 +71,10 @@ static long iSeries_hpte_insert(unsigned long hpte_group, unsigned long va,
                slot &= 0x7fffffffffffffff;
        }
 
+       arpn = phys_to_abs(prpn << PAGE_SHIFT) >> PAGE_SHIFT;
+
        lhpte.v = (va >> 23) << HPTE_V_AVPN_SHIFT | vflags | HPTE_V_VALID;
-       lhpte.r = (physRpn_to_absRpn(prpn) << HPTE_R_RPN_SHIFT) | rflags;
+       lhpte.r = (arpn << HPTE_R_RPN_SHIFT) | rflags;
 
        /* Now fill in the actual HPTE */
        HvCallHpt_addValidate(slot, secondary, &lhpte);
index 56845543c891b29ba3a178ca6649122e7c9578f2..0a3ddc9227c56edd27182ea533b487452b519f17 100644 (file)
@@ -278,7 +278,6 @@ long pSeries_lpar_hpte_insert(unsigned long hpte_group,
                              unsigned long va, unsigned long prpn,
                              unsigned long vflags, unsigned long rflags)
 {
-       unsigned long arpn = physRpn_to_absRpn(prpn);
        unsigned long lpar_rc;
        unsigned long flags;
        unsigned long slot;
@@ -289,7 +288,7 @@ long pSeries_lpar_hpte_insert(unsigned long hpte_group,
        if (vflags & HPTE_V_LARGE)
                hpte_v &= ~(1UL << HPTE_V_AVPN_SHIFT);
 
-       hpte_r = (arpn << HPTE_R_RPN_SHIFT) | rflags;
+       hpte_r = (prpn << HPTE_R_RPN_SHIFT) | rflags;
 
        /* Now fill in the actual HPTE */
        /* Set CEC cookie to 0         */
index a6abd3a979bf5be80412ed4c78f54e08074e9d56..7626bb59954d43e6fa6b7437aff89c68cf2fe5b2 100644 (file)
@@ -51,7 +51,6 @@ long native_hpte_insert(unsigned long hpte_group, unsigned long va,
                        unsigned long prpn, unsigned long vflags,
                        unsigned long rflags)
 {
-       unsigned long arpn = physRpn_to_absRpn(prpn);
        hpte_t *hptep = htab_address + hpte_group;
        unsigned long hpte_v, hpte_r;
        int i;
@@ -74,7 +73,7 @@ long native_hpte_insert(unsigned long hpte_group, unsigned long va,
        hpte_v = (va >> 23) << HPTE_V_AVPN_SHIFT | vflags | HPTE_V_VALID;
        if (vflags & HPTE_V_LARGE)
                va &= ~(1UL << HPTE_V_AVPN_SHIFT);
-       hpte_r = (arpn << HPTE_R_RPN_SHIFT) | rflags;
+       hpte_r = (prpn << HPTE_R_RPN_SHIFT) | rflags;
 
        hptep->r = hpte_r;
        /* Guarantee the second dword is visible before the valid bit */
index 025527742fefdc78caa8f212223edd96476f1920..ab4320c1cf5b71da9ace3f6ad6c6f2b1c8d4a388 100644 (file)
@@ -56,14 +56,6 @@ static inline unsigned long phys_to_abs(unsigned long pa)
        return chunk_to_addr(chunk) + (pa & MSCHUNKS_OFFSET_MASK);
 }
 
-static inline unsigned long
-physRpn_to_absRpn(unsigned long rpn)
-{
-       unsigned long pa = rpn << PAGE_SHIFT;
-       unsigned long aa = phys_to_abs(pa);
-       return (aa >> PAGE_SHIFT);
-}
-
 /* A macro so it can take pointers or unsigned long. */
 #define abs_to_phys(aa) lmb_abs_to_phys((unsigned long)(aa))