Merge branches 'amba', 'fixes', 'misc', 'mmci', 'unstable/omap-dma' and 'unstable...
authorRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 3 Apr 2014 23:33:32 +0000 (00:33 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 3 Apr 2014 23:33:32 +0000 (00:33 +0100)
1  2  3  4  5  6 
arch/arm/include/asm/memory.h
arch/arm/kernel/head.S
arch/arm/kernel/setup.c
arch/arm/mach-sa1100/include/mach/collie.h
arch/arm/mm/mmu.c
arch/arm/mm/proc-v7.S

index 8756e4bcdba0609ff789a4f1efaa551faa39ed98,4afb376d9c7c13d07ea81502e17ba53f0554c122,2438d72cf4e689b02d86392aa17f2c44fbbfee03,8756e4bcdba0609ff789a4f1efaa551faa39ed98,8756e4bcdba0609ff789a4f1efaa551faa39ed98,9ecccc865046a2c257277cd03a8f607ed5e0217d..02fa2558f6626a71e6132844986776c46581388f
      #define END_MEM                   (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE)
      #endif
      
- ----#ifndef PAGE_OFFSET
- --- #define PAGE_OFFSET               PLAT_PHYS_OFFSET
     -#define PAGE_OFFSET               (PHYS_OFFSET)
- ----#endif
- ----
      /*
       * The module can be at any place in ram in nommu mode.
       */
@@@@@@@ -245,8 -242,8 -258,9 -245,8 -245,8 -239,6 +255,9 @@@@@@@ static inline unsigned long __phys_to_v
      
      #else
      
     +#define PHYS_OFFSET       PLAT_PHYS_OFFSET
++ +++#define PHYS_PFN_OFFSET   ((unsigned long)(PHYS_OFFSET >> PAGE_SHIFT))
     +
      static inline phys_addr_t __virt_to_phys(unsigned long x)
      {
        return (phys_addr_t)x - PAGE_OFFSET + PHYS_OFFSET;
@@@@@@@ -257,19 -254,19 -271,12 -257,19 -257,19 -249,30 +268,12 @@@@@@@ static inline unsigned long __phys_to_v
        return x - PHYS_OFFSET + PAGE_OFFSET;
      }
      
-- ---#endif
-- ---#endif
     -#endif /* __ASSEMBLY__ */
++ +++#define virt_to_pfn(kaddr) \
++ +++  ((((unsigned long)(kaddr) - PAGE_OFFSET) >> PAGE_SHIFT) + \
++ +++   PHYS_PFN_OFFSET)
      
-- -- /*
-- --  * PFNs are used to describe any physical page; this means
-- --  * PFN 0 == physical address 0.
-- --  *
-- --  * This is the PFN of the first RAM page in the kernel
-- --  * direct-mapped view.  We assume this is the first page
-- --  * of RAM in the mem_map as well.
-- --  */
-- -- #define PHYS_PFN_OFFSET   ((unsigned long)(PHYS_OFFSET >> PAGE_SHIFT))
     -#ifndef PHYS_OFFSET
     -#ifdef PLAT_PHYS_OFFSET
     -#define PHYS_OFFSET       PLAT_PHYS_OFFSET
     -#else
     -#define PHYS_OFFSET       UL(CONFIG_PHYS_OFFSET)
     -#endif
++ ++ #endif
      
     -#ifndef __ASSEMBLY__
     -
     -/*
     - * PFNs are used to describe any physical page; this means
     - * PFN 0 == physical address 0.
     - *
     - * This is the PFN of the first RAM page in the kernel
     - * direct-mapped view.  We assume this is the first page
     - * of RAM in the mem_map as well.
     - */
     -#define PHYS_PFN_OFFSET   ((unsigned long)(PHYS_OFFSET >> PAGE_SHIFT))
     -
      /*
       * These are *only* valid on the kernel direct mapped RAM memory.
       * Note: Drivers should NOT use these.  They are the wrong
@@@@@@@ -346,9 -343,9 -353,9 -346,9 -346,9 -349,8 +350,9 @@@@@@@ static inline __deprecated void *bus_to
       */
      #define ARCH_PFN_OFFSET           PHYS_PFN_OFFSET
      
-- ---#define virt_to_page(kaddr)       pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
     -#define virt_addr_valid(kaddr)    ((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory)
++ +++#define virt_to_page(kaddr)       pfn_to_page(virt_to_pfn(kaddr))
     +#define virt_addr_valid(kaddr)    (((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory) \
-- --                                   && pfn_valid(__pa(kaddr) >> PAGE_SHIFT) )
++ +++                                  && pfn_valid(virt_to_pfn(kaddr)))
      
      #endif
      
Simple merge
index b0df9761de6dc1109f727e0300ff91448f8fd55b,1e8b030dbefd8b2b19da27d9ca8ecabfaf610bba,0a6c70b0b0f9fc5cbe20c7f6ffff077737eef4fb,b0df9761de6dc1109f727e0300ff91448f8fd55b,b0df9761de6dc1109f727e0300ff91448f8fd55b,6a1b8a81b1ae448168572a9558aaf026f9e7e47e..50e198c1e9c8a16f1b4e06563682e6046f564951
@@@@@@@ -731,7 -731,7 -734,7 -731,7 -731,7 -717,7 +734,7 @@@@@@@ static void __init request_standard_res
        kernel_data.end     = virt_to_phys(_end - 1);
      
        for_each_memblock(memory, region) {
- ---           res = memblock_virt_alloc_low(sizeof(*res), 0);
     -          res = alloc_bootmem_low(sizeof(*res));
+ ++++          res = memblock_virt_alloc(sizeof(*res), 0);
                res->name  = "System RAM";
                res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region));
                res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
index 4f08c133cc255e2e2c2b93a0f28b79caaf3fc795,a623cb3ad012b196aacd11fc7f122fb84c0e3765,6ec07a84f7595816151c87f68df9d2dde918579c,4f08c133cc255e2e2c2b93a0f28b79caaf3fc795,4f08c133cc255e2e2c2b93a0f28b79caaf3fc795,580ef2de82d728f8ecfde5f5f3b208a2e5525b06..b68c6b22e1c80f263d46555064b1c1c13f48586c
@@@@@@@ -508,8 -512,9 -508,18 -508,8 -508,8 -458,8 +512,19 @@@@@@@ static void __init build_mem_type_table
        cp = &cache_policies[cachepolicy];
        vecs_pgprot = kern_pgprot = user_pgprot = cp->pte;
        s2_pgprot = cp->pte_s2;
- ----  hyp_device_pgprot = s2_device_pgprot = mem_types[MT_DEVICE].prot_pte;
+ ++++  hyp_device_pgprot = mem_types[MT_DEVICE].prot_pte;
+ ++++  s2_device_pgprot = mem_types[MT_DEVICE].prot_pte_s2;
+  +++
++ +++  /*
++ +++   * We don't use domains on ARMv6 (since this causes problems with
++ +++   * v6/v7 kernels), so we must use a separate memory type for user
++ +++   * r/o, kernel r/w to map the vectors page.
++ +++   */
++ +++#ifndef CONFIG_ARM_LPAE
++ +++  if (cpu_arch == CPU_ARCH_ARMv6)
++ +++          vecs_pgprot |= L_PTE_MT_VECTORS;
++ +++#endif
 +    
        /*
         * ARMv6 and above have extended page tables.
         */
Simple merge