aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ppc64/abs_addr.h
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2005-08-03 06:21:23 -0400
committerPaul Mackerras <paulus@samba.org>2005-08-28 20:53:35 -0400
commit38e85dc18036804ada8698951cfad4e6114fec1b (patch)
treee1c503d81ce23d1ac7d50897bb2b190db09ace5d /include/asm-ppc64/abs_addr.h
parentaed31351941aa990fb0865c186565a589c56d3fe (diff)
[PATCH] ppc64: Remove PTRRELOC() from msChunks code
The msChunks code was written to work on pSeries, but now it's only used on iSeries. This means there's no need to do PTRRELOC anymore, so remove it all. A few places were getting "extern reloc_offset()" from abs_addr.h, move it into system.h instead. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-ppc64/abs_addr.h')
-rw-r--r--include/asm-ppc64/abs_addr.h36
1 files changed, 10 insertions, 26 deletions
diff --git a/include/asm-ppc64/abs_addr.h b/include/asm-ppc64/abs_addr.h
index 6d4e8e787058..93dc63ed4f2f 100644
--- a/include/asm-ppc64/abs_addr.h
+++ b/include/asm-ppc64/abs_addr.h
@@ -29,46 +29,30 @@ struct msChunks {
29extern struct msChunks msChunks; 29extern struct msChunks msChunks;
30 30
31extern unsigned long msChunks_alloc(unsigned long, unsigned long, unsigned long); 31extern unsigned long msChunks_alloc(unsigned long, unsigned long, unsigned long);
32extern unsigned long reloc_offset(void);
33 32
34#ifdef CONFIG_MSCHUNKS 33#ifdef CONFIG_MSCHUNKS
35 34
36static inline unsigned long 35static inline unsigned long chunk_to_addr(unsigned long chunk)
37chunk_to_addr(unsigned long chunk)
38{ 36{
39 unsigned long offset = reloc_offset(); 37 return chunk << msChunks.chunk_shift;
40 struct msChunks *_msChunks = PTRRELOC(&msChunks);
41
42 return chunk << _msChunks->chunk_shift;
43} 38}
44 39
45static inline unsigned long 40static inline unsigned long addr_to_chunk(unsigned long addr)
46addr_to_chunk(unsigned long addr)
47{ 41{
48 unsigned long offset = reloc_offset(); 42 return addr >> msChunks.chunk_shift;
49 struct msChunks *_msChunks = PTRRELOC(&msChunks);
50
51 return addr >> _msChunks->chunk_shift;
52} 43}
53 44
54static inline unsigned long 45static inline unsigned long chunk_offset(unsigned long addr)
55chunk_offset(unsigned long addr)
56{ 46{
57 unsigned long offset = reloc_offset(); 47 return addr & msChunks.chunk_mask;
58 struct msChunks *_msChunks = PTRRELOC(&msChunks);
59
60 return addr & _msChunks->chunk_mask;
61} 48}
62 49
63static inline unsigned long 50static inline unsigned long abs_chunk(unsigned long pchunk)
64abs_chunk(unsigned long pchunk)
65{ 51{
66 unsigned long offset = reloc_offset(); 52 if (pchunk >= msChunks.num_chunks)
67 struct msChunks *_msChunks = PTRRELOC(&msChunks);
68 if ( pchunk >= _msChunks->num_chunks ) {
69 return pchunk; 53 return pchunk;
70 } 54
71 return PTRRELOC(_msChunks->abs)[pchunk]; 55 return msChunks.abs[pchunk];
72} 56}
73 57
74/* A macro so it can take pointers or unsigned long. */ 58/* A macro so it can take pointers or unsigned long. */