[PATCH 4/10] ppc64: Consolidate some macros

Michael Ellerman michael at ellerman.id.au
Wed Aug 3 20:21:23 EST 2005


The only caller of chunk_offset() and abs_chunk() is phys_to_abs(), so
fold the former two into the latter.

Signed-off-by: Michael Ellerman <michael at ellerman.id.au>

 include/asm-ppc64/abs_addr.h |   21 +++++++--------------
 1 files changed, 7 insertions(+), 14 deletions(-)

Index: work/include/asm-ppc64/abs_addr.h
===================================================================
--- work.orig/include/asm-ppc64/abs_addr.h
+++ work/include/asm-ppc64/abs_addr.h
@@ -44,24 +44,17 @@ static inline unsigned long addr_to_chun
 	return addr >> MSCHUNKS_CHUNK_SHIFT;
 }
 
-static inline unsigned long chunk_offset(unsigned long addr)
+static inline unsigned long phys_to_abs(unsigned long pa)
 {
-	return addr & MSCHUNKS_OFFSET_MASK;
-}
+	unsigned long chunk;
 
-static inline unsigned long abs_chunk(unsigned long pchunk)
-{
-	if (pchunk >= mschunks_map.num_chunks)
-		return pchunk;
+	chunk = addr_to_chunk(pa);
 
-	return mschunks_map.mapping[pchunk];
-}
+	if (chunk < mschunks_map.num_chunks)
+		chunk = mschunks_map.mapping[chunk];
 
-/* A macro so it can take pointers or unsigned long. */
-#define phys_to_abs(pa)						     \
-	({ unsigned long _pa = (unsigned long)(pa);			     \
-	   chunk_to_addr(abs_chunk(addr_to_chunk(_pa))) + chunk_offset(_pa); \
-	})
+	return chunk_to_addr(chunk) + (pa & MSCHUNKS_OFFSET_MASK);
+}
 
 static inline unsigned long
 physRpn_to_absRpn(unsigned long rpn)



More information about the Linuxppc64-dev mailing list