|
@@ -38,19 +38,6 @@ int kmalloc_ok = 0;
|
|
/* Used during early boot */
|
|
/* Used during early boot */
|
|
static unsigned long brk_end;
|
|
static unsigned long brk_end;
|
|
|
|
|
|
-#ifdef CONFIG_HIGHMEM
|
|
|
|
-static void setup_highmem(unsigned long highmem_start,
|
|
|
|
- unsigned long highmem_len)
|
|
|
|
-{
|
|
|
|
- unsigned long highmem_pfn;
|
|
|
|
- int i;
|
|
|
|
-
|
|
|
|
- highmem_pfn = __pa(highmem_start) >> PAGE_SHIFT;
|
|
|
|
- for (i = 0; i < highmem_len >> PAGE_SHIFT; i++)
|
|
|
|
- free_highmem_page(&mem_map[highmem_pfn + i]);
|
|
|
|
-}
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
void __init mem_init(void)
|
|
void __init mem_init(void)
|
|
{
|
|
{
|
|
/* clear the zero-page */
|
|
/* clear the zero-page */
|
|
@@ -67,9 +54,6 @@ void __init mem_init(void)
|
|
/* this will put all low memory onto the freelists */
|
|
/* this will put all low memory onto the freelists */
|
|
free_all_bootmem();
|
|
free_all_bootmem();
|
|
max_low_pfn = totalram_pages;
|
|
max_low_pfn = totalram_pages;
|
|
-#ifdef CONFIG_HIGHMEM
|
|
|
|
- setup_highmem(end_iomem, highmem);
|
|
|
|
-#endif
|
|
|
|
max_pfn = totalram_pages;
|
|
max_pfn = totalram_pages;
|
|
mem_init_print_info(NULL);
|
|
mem_init_print_info(NULL);
|
|
kmalloc_ok = 1;
|
|
kmalloc_ok = 1;
|
|
@@ -127,49 +111,6 @@ static void __init fixrange_init(unsigned long start, unsigned long end,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_HIGHMEM
|
|
|
|
-pte_t *kmap_pte;
|
|
|
|
-pgprot_t kmap_prot;
|
|
|
|
-
|
|
|
|
-#define kmap_get_fixmap_pte(vaddr) \
|
|
|
|
- pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)),\
|
|
|
|
- (vaddr)), (vaddr))
|
|
|
|
-
|
|
|
|
-static void __init kmap_init(void)
|
|
|
|
-{
|
|
|
|
- unsigned long kmap_vstart;
|
|
|
|
-
|
|
|
|
- /* cache the first kmap pte */
|
|
|
|
- kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
|
|
|
|
- kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
|
|
|
|
-
|
|
|
|
- kmap_prot = PAGE_KERNEL;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static void __init init_highmem(void)
|
|
|
|
-{
|
|
|
|
- pgd_t *pgd;
|
|
|
|
- pud_t *pud;
|
|
|
|
- pmd_t *pmd;
|
|
|
|
- pte_t *pte;
|
|
|
|
- unsigned long vaddr;
|
|
|
|
-
|
|
|
|
- /*
|
|
|
|
- * Permanent kmaps:
|
|
|
|
- */
|
|
|
|
- vaddr = PKMAP_BASE;
|
|
|
|
- fixrange_init(vaddr, vaddr + PAGE_SIZE*LAST_PKMAP, swapper_pg_dir);
|
|
|
|
-
|
|
|
|
- pgd = swapper_pg_dir + pgd_index(vaddr);
|
|
|
|
- pud = pud_offset(pgd, vaddr);
|
|
|
|
- pmd = pmd_offset(pud, vaddr);
|
|
|
|
- pte = pte_offset_kernel(pmd, vaddr);
|
|
|
|
- pkmap_page_table = pte;
|
|
|
|
-
|
|
|
|
- kmap_init();
|
|
|
|
-}
|
|
|
|
-#endif /* CONFIG_HIGHMEM */
|
|
|
|
-
|
|
|
|
static void __init fixaddr_user_init( void)
|
|
static void __init fixaddr_user_init( void)
|
|
{
|
|
{
|
|
#ifdef CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA
|
|
#ifdef CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA
|
|
@@ -211,9 +152,6 @@ void __init paging_init(void)
|
|
|
|
|
|
zones_size[ZONE_NORMAL] = (end_iomem >> PAGE_SHIFT) -
|
|
zones_size[ZONE_NORMAL] = (end_iomem >> PAGE_SHIFT) -
|
|
(uml_physmem >> PAGE_SHIFT);
|
|
(uml_physmem >> PAGE_SHIFT);
|
|
-#ifdef CONFIG_HIGHMEM
|
|
|
|
- zones_size[ZONE_HIGHMEM] = highmem >> PAGE_SHIFT;
|
|
|
|
-#endif
|
|
|
|
free_area_init(zones_size);
|
|
free_area_init(zones_size);
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -224,10 +162,6 @@ void __init paging_init(void)
|
|
fixrange_init(vaddr, FIXADDR_TOP, swapper_pg_dir);
|
|
fixrange_init(vaddr, FIXADDR_TOP, swapper_pg_dir);
|
|
|
|
|
|
fixaddr_user_init();
|
|
fixaddr_user_init();
|
|
-
|
|
|
|
-#ifdef CONFIG_HIGHMEM
|
|
|
|
- init_highmem();
|
|
|
|
-#endif
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|