[PATCH] ppc64: Remove redundant uses of physRpn_to_absRpn

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>

authored by

Michael Ellerman and committed by
Paul Mackerras
aefd16b0 ce217952

+6 -13
+4 -1
arch/ppc64/kernel/iSeries_htab.c
··· 41 41 unsigned long prpn, unsigned long vflags, 42 42 unsigned long rflags) 43 43 { 44 + unsigned long arpn; 44 45 long slot; 45 46 hpte_t lhpte; 46 47 int secondary = 0; ··· 71 70 slot &= 0x7fffffffffffffff; 72 71 } 73 72 73 + arpn = phys_to_abs(prpn << PAGE_SHIFT) >> PAGE_SHIFT; 74 + 74 75 lhpte.v = (va >> 23) << HPTE_V_AVPN_SHIFT | vflags | HPTE_V_VALID; 75 - lhpte.r = (physRpn_to_absRpn(prpn) << HPTE_R_RPN_SHIFT) | rflags; 76 + lhpte.r = (arpn << HPTE_R_RPN_SHIFT) | rflags; 76 77 77 78 /* Now fill in the actual HPTE */ 78 79 HvCallHpt_addValidate(slot, secondary, &lhpte);
+1 -2
arch/ppc64/kernel/pSeries_lpar.c
··· 278 278 unsigned long va, unsigned long prpn, 279 279 unsigned long vflags, unsigned long rflags) 280 280 { 281 - unsigned long arpn = physRpn_to_absRpn(prpn); 282 281 unsigned long lpar_rc; 283 282 unsigned long flags; 284 283 unsigned long slot; ··· 288 289 if (vflags & HPTE_V_LARGE) 289 290 hpte_v &= ~(1UL << HPTE_V_AVPN_SHIFT); 290 291 291 - hpte_r = (arpn << HPTE_R_RPN_SHIFT) | rflags; 292 + hpte_r = (prpn << HPTE_R_RPN_SHIFT) | rflags; 292 293 293 294 /* Now fill in the actual HPTE */ 294 295 /* Set CEC cookie to 0 */
+1 -2
arch/ppc64/mm/hash_native.c
··· 51 51 unsigned long prpn, unsigned long vflags, 52 52 unsigned long rflags) 53 53 { 54 - unsigned long arpn = physRpn_to_absRpn(prpn); 55 54 hpte_t *hptep = htab_address + hpte_group; 56 55 unsigned long hpte_v, hpte_r; 57 56 int i; ··· 73 74 hpte_v = (va >> 23) << HPTE_V_AVPN_SHIFT | vflags | HPTE_V_VALID; 74 75 if (vflags & HPTE_V_LARGE) 75 76 va &= ~(1UL << HPTE_V_AVPN_SHIFT); 76 - hpte_r = (arpn << HPTE_R_RPN_SHIFT) | rflags; 77 + hpte_r = (prpn << HPTE_R_RPN_SHIFT) | rflags; 77 78 78 79 hptep->r = hpte_r; 79 80 /* Guarantee the second dword is visible before the valid bit */
-8
include/asm-ppc64/abs_addr.h
··· 56 56 return chunk_to_addr(chunk) + (pa & MSCHUNKS_OFFSET_MASK); 57 57 } 58 58 59 - static inline unsigned long 60 - physRpn_to_absRpn(unsigned long rpn) 61 - { 62 - unsigned long pa = rpn << PAGE_SHIFT; 63 - unsigned long aa = phys_to_abs(pa); 64 - return (aa >> PAGE_SHIFT); 65 - } 66 - 67 59 /* A macro so it can take pointers or unsigned long. */ 68 60 #define abs_to_phys(aa) lmb_abs_to_phys((unsigned long)(aa)) 69 61