diff options
Diffstat (limited to 'arch/um/kernel/mem.c')
-rw-r--r-- | arch/um/kernel/mem.c | 64 |
1 files changed, 1 insertions, 63 deletions
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c index b0ee64622ff7..61d7e6138ff5 100644 --- a/arch/um/kernel/mem.c +++ b/arch/um/kernel/mem.c | |||
@@ -21,7 +21,7 @@ | |||
21 | /* allocated in paging_init, zeroed in mem_init, and unchanged thereafter */ | 21 | /* allocated in paging_init, zeroed in mem_init, and unchanged thereafter */ |
22 | unsigned long *empty_zero_page = NULL; | 22 | unsigned long *empty_zero_page = NULL; |
23 | /* allocated in paging_init and unchanged thereafter */ | 23 | /* allocated in paging_init and unchanged thereafter */ |
24 | unsigned long *empty_bad_page = NULL; | 24 | static unsigned long *empty_bad_page = NULL; |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * Initialized during boot, and readonly for initializing page tables | 27 | * Initialized during boot, and readonly for initializing page tables |
@@ -240,37 +240,6 @@ void __init paging_init(void) | |||
240 | #endif | 240 | #endif |
241 | } | 241 | } |
242 | 242 | ||
243 | struct page *arch_validate(struct page *page, gfp_t mask, int order) | ||
244 | { | ||
245 | unsigned long addr, zero = 0; | ||
246 | int i; | ||
247 | |||
248 | again: | ||
249 | if (page == NULL) | ||
250 | return page; | ||
251 | if (PageHighMem(page)) | ||
252 | return page; | ||
253 | |||
254 | addr = (unsigned long) page_address(page); | ||
255 | for (i = 0; i < (1 << order); i++) { | ||
256 | current->thread.fault_addr = (void *) addr; | ||
257 | if (__do_copy_to_user((void __user *) addr, &zero, | ||
258 | sizeof(zero), | ||
259 | ¤t->thread.fault_addr, | ||
260 | ¤t->thread.fault_catcher)) { | ||
261 | if (!(mask & __GFP_WAIT)) | ||
262 | return NULL; | ||
263 | else break; | ||
264 | } | ||
265 | addr += PAGE_SIZE; | ||
266 | } | ||
267 | |||
268 | if (i == (1 << order)) | ||
269 | return page; | ||
270 | page = alloc_pages(mask, order); | ||
271 | goto again; | ||
272 | } | ||
273 | |||
274 | /* | 243 | /* |
275 | * This can't do anything because nothing in the kernel image can be freed | 244 | * This can't do anything because nothing in the kernel image can be freed |
276 | * since it's not in kernel physical memory. | 245 | * since it's not in kernel physical memory. |
@@ -295,37 +264,6 @@ void free_initrd_mem(unsigned long start, unsigned long end) | |||
295 | } | 264 | } |
296 | #endif | 265 | #endif |
297 | 266 | ||
298 | void show_mem(void) | ||
299 | { | ||
300 | int pfn, total = 0, reserved = 0; | ||
301 | int shared = 0, cached = 0; | ||
302 | int high_mem = 0; | ||
303 | struct page *page; | ||
304 | |||
305 | printk(KERN_INFO "Mem-info:\n"); | ||
306 | show_free_areas(); | ||
307 | printk(KERN_INFO "Free swap: %6ldkB\n", | ||
308 | nr_swap_pages<<(PAGE_SHIFT-10)); | ||
309 | pfn = max_mapnr; | ||
310 | while (pfn-- > 0) { | ||
311 | page = pfn_to_page(pfn); | ||
312 | total++; | ||
313 | if (PageHighMem(page)) | ||
314 | high_mem++; | ||
315 | if (PageReserved(page)) | ||
316 | reserved++; | ||
317 | else if (PageSwapCache(page)) | ||
318 | cached++; | ||
319 | else if (page_count(page)) | ||
320 | shared += page_count(page) - 1; | ||
321 | } | ||
322 | printk(KERN_INFO "%d pages of RAM\n", total); | ||
323 | printk(KERN_INFO "%d pages of HIGHMEM\n", high_mem); | ||
324 | printk(KERN_INFO "%d reserved pages\n", reserved); | ||
325 | printk(KERN_INFO "%d pages shared\n", shared); | ||
326 | printk(KERN_INFO "%d pages swap cached\n", cached); | ||
327 | } | ||
328 | |||
329 | /* Allocate and free page tables. */ | 267 | /* Allocate and free page tables. */ |
330 | 268 | ||
331 | pgd_t *pgd_alloc(struct mm_struct *mm) | 269 | pgd_t *pgd_alloc(struct mm_struct *mm) |