diff options
Diffstat (limited to 'arch/ia64/kernel/uncached.c')
-rw-r--r-- | arch/ia64/kernel/uncached.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/ia64/kernel/uncached.c b/arch/ia64/kernel/uncached.c index 4e9d06c48a8b..c6d40446c2c4 100644 --- a/arch/ia64/kernel/uncached.c +++ b/arch/ia64/kernel/uncached.c | |||
@@ -205,23 +205,18 @@ EXPORT_SYMBOL(uncached_free_page); | |||
205 | static int __init | 205 | static int __init |
206 | uncached_build_memmap(unsigned long start, unsigned long end, void *arg) | 206 | uncached_build_memmap(unsigned long start, unsigned long end, void *arg) |
207 | { | 207 | { |
208 | long length; | 208 | long length = end - start; |
209 | unsigned long vstart, vend; | ||
210 | int node; | 209 | int node; |
211 | 210 | ||
212 | length = end - start; | ||
213 | vstart = start + __IA64_UNCACHED_OFFSET; | ||
214 | vend = end + __IA64_UNCACHED_OFFSET; | ||
215 | |||
216 | dprintk(KERN_ERR "uncached_build_memmap(%lx %lx)\n", start, end); | 211 | dprintk(KERN_ERR "uncached_build_memmap(%lx %lx)\n", start, end); |
217 | 212 | ||
218 | memset((char *)vstart, 0, length); | 213 | memset((char *)start, 0, length); |
219 | 214 | ||
220 | node = paddr_to_nid(start); | 215 | node = paddr_to_nid(start - __IA64_UNCACHED_OFFSET); |
221 | 216 | ||
222 | for (; vstart < vend ; vstart += PAGE_SIZE) { | 217 | for (; start < end ; start += PAGE_SIZE) { |
223 | dprintk(KERN_INFO "sticking %lx into the pool!\n", vstart); | 218 | dprintk(KERN_INFO "sticking %lx into the pool!\n", start); |
224 | gen_pool_free(uncached_pool[node], vstart, PAGE_SIZE); | 219 | gen_pool_free(uncached_pool[node], start, PAGE_SIZE); |
225 | } | 220 | } |
226 | 221 | ||
227 | return 0; | 222 | return 0; |