]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
authorPaul Mundt <lethal@linux-sh.org>
Wed, 4 Aug 2010 04:52:34 +0000 (13:52 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 4 Aug 2010 04:52:34 +0000 (13:52 +0900)
1  2 
arch/sh/Kconfig
arch/sh/mm/init.c

diff --combined arch/sh/Kconfig
index 4b5a1d53704d498132af4c73760abf5c03524cac,82868fee21fdbed9f670edde147032253f82f459..c91934186896d5da0ca9b2a86216aa58ada6e2f5
@@@ -10,7 -10,7 +10,7 @@@ config SUPER
        select EMBEDDED
        select HAVE_CLK
        select HAVE_IDE if HAS_IOPORT
-       select HAVE_LMB
+       select HAVE_MEMBLOCK
        select HAVE_OPROFILE
        select HAVE_GENERIC_DMA_COHERENT
        select HAVE_ARCH_TRACEHOOK
@@@ -23,7 -23,6 +23,7 @@@
        select HAVE_KERNEL_LZMA
        select HAVE_KERNEL_LZO
        select HAVE_SYSCALL_TRACEPOINTS
 +      select HAVE_REGS_AND_STACK_ACCESS_API
        select RTC_LIB
        select GENERIC_ATOMIC64
        help
@@@ -573,7 -572,7 +573,7 @@@ config SH_CLK_CP
  config SH_CLK_CPG_LEGACY
        depends on SH_CLK_CPG
        def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
 -                    !CPU_SUBTYPE_SH7786
 +                    !CPU_SUBTYPE_SH7786 && !CPU_SUBTYPE_SH7757
  
  config SH_CLK_MD
        int "CPU Mode Pin Setting"
diff --combined arch/sh/mm/init.c
index 82d46096e531440233500eef263c11af7a564d73,d0e249100e98d044b804414b80d725a0ebd7e43d..105f559d946d93d3ed8c7a133d9d48cd4c1a16b2
@@@ -16,7 -16,7 +16,7 @@@
  #include <linux/pagemap.h>
  #include <linux/percpu.h>
  #include <linux/io.h>
- #include <linux/lmb.h>
+ #include <linux/memblock.h>
  #include <linux/dma-mapping.h>
  #include <asm/mmu_context.h>
  #include <asm/mmzone.h>
@@@ -33,7 -33,7 +33,7 @@@ pgd_t swapper_pg_dir[PTRS_PER_PGD]
  
  void __init generic_mem_init(void)
  {
-       lmb_add(__MEMORY_START, __MEMORY_SIZE);
+       memblock_add(__MEMORY_START, __MEMORY_SIZE);
  }
  
  void __init __weak plat_mem_setup(void)
@@@ -47,6 -47,7 +47,6 @@@ static pte_t *__get_pte_phys(unsigned l
        pgd_t *pgd;
        pud_t *pud;
        pmd_t *pmd;
 -      pte_t *pte;
  
        pgd = pgd_offset_k(addr);
        if (pgd_none(*pgd)) {
@@@ -66,7 -67,8 +66,7 @@@
                return NULL;
        }
  
 -      pte = pte_offset_kernel(pmd, addr);
 -      return pte;
 +      return pte_offset_kernel(pmd, addr);
  }
  
  static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot)
@@@ -123,45 -125,13 +123,45 @@@ void __clear_fixmap(enum fixed_addresse
        clear_pte_phys(address, prot);
  }
  
 +static pmd_t * __init one_md_table_init(pud_t *pud)
 +{
 +      if (pud_none(*pud)) {
 +              pmd_t *pmd;
 +
 +              pmd = alloc_bootmem_pages(PAGE_SIZE);
 +              pud_populate(&init_mm, pud, pmd);
 +              BUG_ON(pmd != pmd_offset(pud, 0));
 +      }
 +
 +      return pmd_offset(pud, 0);
 +}
 +
 +static pte_t * __init one_page_table_init(pmd_t *pmd)
 +{
 +      if (pmd_none(*pmd)) {
 +              pte_t *pte;
 +
 +              pte = alloc_bootmem_pages(PAGE_SIZE);
 +              pmd_populate_kernel(&init_mm, pmd, pte);
 +              BUG_ON(pte != pte_offset_kernel(pmd, 0));
 +      }
 +
 +      return pte_offset_kernel(pmd, 0);
 +}
 +
 +static pte_t * __init page_table_kmap_check(pte_t *pte, pmd_t *pmd,
 +                                          unsigned long vaddr, pte_t *lastpte)
 +{
 +      return pte;
 +}
 +
  void __init page_table_range_init(unsigned long start, unsigned long end,
                                         pgd_t *pgd_base)
  {
        pgd_t *pgd;
        pud_t *pud;
        pmd_t *pmd;
 -      pte_t *pte;
 +      pte_t *pte = NULL;
        int i, j, k;
        unsigned long vaddr;
  
        for ( ; (i < PTRS_PER_PGD) && (vaddr != end); pgd++, i++) {
                pud = (pud_t *)pgd;
                for ( ; (j < PTRS_PER_PUD) && (vaddr != end); pud++, j++) {
 -#ifdef __PAGETABLE_PMD_FOLDED
 -                      pmd = (pmd_t *)pud;
 -#else
 -                      pmd = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE);
 -                      pud_populate(&init_mm, pud, pmd);
 +                      pmd = one_md_table_init(pud);
 +#ifndef __PAGETABLE_PMD_FOLDED
                        pmd += k;
  #endif
                        for (; (k < PTRS_PER_PMD) && (vaddr != end); pmd++, k++) {
 -                              if (pmd_none(*pmd)) {
 -                                      pte = (pte_t *) alloc_bootmem_low_pages(PAGE_SIZE);
 -                                      pmd_populate_kernel(&init_mm, pmd, pte);
 -                                      BUG_ON(pte != pte_offset_kernel(pmd, 0));
 -                              }
 +                              pte = page_table_kmap_check(one_page_table_init(pmd),
 +                                                          pmd, vaddr, pte);
                                vaddr += PMD_SIZE;
                        }
                        k = 0;
@@@ -200,12 -176,12 +200,12 @@@ void __init allocate_pgdat(unsigned in
        get_pfn_range_for_nid(nid, &start_pfn, &end_pfn);
  
  #ifdef CONFIG_NEED_MULTIPLE_NODES
-       phys = __lmb_alloc_base(sizeof(struct pglist_data),
+       phys = __memblock_alloc_base(sizeof(struct pglist_data),
                                SMP_CACHE_BYTES, end_pfn << PAGE_SHIFT);
        /* Retry with all of system memory */
        if (!phys)
-               phys = __lmb_alloc_base(sizeof(struct pglist_data),
-                                       SMP_CACHE_BYTES, lmb_end_of_DRAM());
+               phys = __memblock_alloc_base(sizeof(struct pglist_data),
+                                       SMP_CACHE_BYTES, memblock_end_of_DRAM());
        if (!phys)
                panic("Can't allocate pgdat for node %d\n", nid);
  
@@@ -236,7 -212,7 +236,7 @@@ static void __init bootmem_init_one_nod
  
        total_pages = bootmem_bootmap_pages(p->node_spanned_pages);
  
-       paddr = lmb_alloc(total_pages << PAGE_SHIFT, PAGE_SIZE);
+       paddr = memblock_alloc(total_pages << PAGE_SHIFT, PAGE_SIZE);
        if (!paddr)
                panic("Can't allocate bootmap for nid[%d]\n", nid);
  
         */
        if (nid == 0) {
                /* Reserve the sections we're already using. */
-               for (i = 0; i < lmb.reserved.cnt; i++)
-                       reserve_bootmem(lmb.reserved.region[i].base,
-                                       lmb_size_bytes(&lmb.reserved, i),
+               for (i = 0; i < memblock.reserved.cnt; i++)
+                       reserve_bootmem(memblock.reserved.region[i].base,
+                                       memblock_size_bytes(&memblock.reserved, i),
                                        BOOTMEM_DEFAULT);
        }
  
@@@ -265,10 -241,10 +265,10 @@@ static void __init do_init_bootmem(void
        int i;
  
        /* Add active regions with valid PFNs. */
-       for (i = 0; i < lmb.memory.cnt; i++) {
+       for (i = 0; i < memblock.memory.cnt; i++) {
                unsigned long start_pfn, end_pfn;
-               start_pfn = lmb.memory.region[i].base >> PAGE_SHIFT;
-               end_pfn = start_pfn + lmb_size_pages(&lmb.memory, i);
+               start_pfn = memblock.memory.region[i].base >> PAGE_SHIFT;
+               end_pfn = start_pfn + memblock_size_pages(&memblock.memory, i);
                __add_active_range(0, start_pfn, end_pfn);
        }
  
@@@ -300,7 -276,7 +300,7 @@@ static void __init early_reserve_mem(vo
         * this catches the (definitely buggy) case of us accidentally
         * initializing the bootmem allocator with an invalid RAM area.
         */
-       lmb_reserve(__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET,
+       memblock_reserve(__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET,
                    (PFN_PHYS(start_pfn) + PAGE_SIZE - 1) -
                    (__MEMORY_START + CONFIG_ZERO_PAGE_OFFSET));
  
         * Reserve physical pages below CONFIG_ZERO_PAGE_OFFSET.
         */
        if (CONFIG_ZERO_PAGE_OFFSET != 0)
-               lmb_reserve(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET);
+               memblock_reserve(__MEMORY_START, CONFIG_ZERO_PAGE_OFFSET);
  
        /*
         * Handle additional early reservations
@@@ -323,27 -299,27 +323,27 @@@ void __init paging_init(void
        unsigned long vaddr, end;
        int nid;
  
-       lmb_init();
+       memblock_init();
  
        sh_mv.mv_mem_init();
  
        early_reserve_mem();
  
-       lmb_enforce_memory_limit(memory_limit);
-       lmb_analyze();
+       memblock_enforce_memory_limit(memory_limit);
+       memblock_analyze();
  
-       lmb_dump_all();
+       memblock_dump_all();
  
        /*
         * Determine low and high memory ranges:
         */
-       max_low_pfn = max_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT;
+       max_low_pfn = max_pfn = memblock_end_of_DRAM() >> PAGE_SHIFT;
        min_low_pfn = __MEMORY_START >> PAGE_SHIFT;
  
        nodes_clear(node_online_map);
  
        memory_start = (unsigned long)__va(__MEMORY_START);
-       memory_end = memory_start + (memory_limit ?: lmb_phys_mem_size());
+       memory_end = memory_start + (memory_limit ?: memblock_phys_mem_size());
  
        uncached_init();
        pmb_init();