]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/um/kernel/mem.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[linux-2.6-omap-h63xx.git] / arch / um / kernel / mem.c
index d872fdce1d7ec76e9d4b37782b2a9ac9dd108395..e2274ef3155d4b8f320fe11854876e39cc543e10 100644 (file)
@@ -21,7 +21,7 @@
 /* allocated in paging_init, zeroed in mem_init, and unchanged thereafter */
 unsigned long *empty_zero_page = NULL;
 /* allocated in paging_init and unchanged thereafter */
-unsigned long *empty_bad_page = NULL;
+static unsigned long *empty_bad_page = NULL;
 
 /*
  * Initialized during boot, and readonly for initializing page tables
@@ -240,37 +240,6 @@ void __init paging_init(void)
 #endif
 }
 
-struct page *arch_validate(struct page *page, gfp_t mask, int order)
-{
-       unsigned long addr, zero = 0;
-       int i;
-
- again:
-       if (page == NULL)
-               return page;
-       if (PageHighMem(page))
-               return page;
-
-       addr = (unsigned long) page_address(page);
-       for (i = 0; i < (1 << order); i++) {
-               current->thread.fault_addr = (void *) addr;
-               if (__do_copy_to_user((void __user *) addr, &zero,
-                                    sizeof(zero),
-                                    &current->thread.fault_addr,
-                                    &current->thread.fault_catcher)) {
-                       if (!(mask & __GFP_WAIT))
-                               return NULL;
-                       else break;
-               }
-               addr += PAGE_SIZE;
-       }
-
-       if (i == (1 << order))
-               return page;
-       page = alloc_pages(mask, order);
-       goto again;
-}
-
 /*
  * This can't do anything because nothing in the kernel image can be freed
  * since it's not in kernel physical memory.
@@ -299,7 +268,7 @@ void show_mem(void)
 {
        int pfn, total = 0, reserved = 0;
        int shared = 0, cached = 0;
-       int highmem = 0;
+       int high_mem = 0;
        struct page *page;
 
        printk(KERN_INFO "Mem-info:\n");
@@ -311,7 +280,7 @@ void show_mem(void)
                page = pfn_to_page(pfn);
                total++;
                if (PageHighMem(page))
-                       highmem++;
+                       high_mem++;
                if (PageReserved(page))
                        reserved++;
                else if (PageSwapCache(page))
@@ -320,7 +289,7 @@ void show_mem(void)
                        shared += page_count(page) - 1;
        }
        printk(KERN_INFO "%d pages of RAM\n", total);
-       printk(KERN_INFO "%d pages of HIGHMEM\n", highmem);
+       printk(KERN_INFO "%d pages of HIGHMEM\n", high_mem);
        printk(KERN_INFO "%d reserved pages\n", reserved);
        printk(KERN_INFO "%d pages shared\n", shared);
        printk(KERN_INFO "%d pages swap cached\n", cached);
@@ -354,11 +323,13 @@ pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
        return pte;
 }
 
-struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
+pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
 {
        struct page *pte;
 
        pte = alloc_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
+       if (pte)
+               pgtable_page_ctor(pte);
        return pte;
 }
 
@@ -373,3 +344,8 @@ pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
        return pmd;
 }
 #endif
+
+void *uml_kmalloc(int size, int flags)
+{
+       return kmalloc(size, flags);
+}