]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
Merge branches 'fixes' and 'misc' into for-linus
authorRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 28 Jan 2014 21:38:48 +0000 (21:38 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 28 Jan 2014 21:38:48 +0000 (21:38 +0000)
1  2  3 
arch/arm/Makefile
arch/arm/mm/init.c

diff --combined arch/arm/Makefile
index 23d5e3946589a6c5e240b7d0060d84efee71d5d5,04aa55802ae76a2dc43dd04c7a98776e06b1fb2b,c99b1086d83dfa8c0c407bab392ff5bb12927ab5..08a9ef58d9c3567f1b78862ed136546416ad241d
@@@@ -40,6 -40,10 -40,10 +40,6 @@@@ ifeq ($(CONFIG_FRAME_POINTER),y
   KBUILD_CFLAGS        +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
   endif
   
 --ifeq ($(CONFIG_CC_STACKPROTECTOR),y)
 --KBUILD_CFLAGS        +=-fstack-protector
 --endif
 --
   ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
   KBUILD_CPPFLAGS      += -mbig-endian
   AS           += -EB
@@@@ -96,7 -100,7 -100,7 +96,7 @@@@ tune-$(CONFIG_CPU_V6K)              =$(call cc-opti
   tune-y := $(tune-y)
   
   ifeq ($(CONFIG_AEABI),y)
- -CFLAGS_ABI   :=-mabi=aapcs-linux -mno-thumb-interwork
+ +CFLAGS_ABI   :=-mabi=aapcs-linux -mno-thumb-interwork -mfpu=vfp
   else
   CFLAGS_ABI   :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
   endif
@@@@ -144,18 -148,15 -148,15 +144,18 @@@@ textofs-$(CONFIG_ARCH_MSM8960) := 0x002
   machine-$(CONFIG_ARCH_AT91)          += at91
   machine-$(CONFIG_ARCH_BCM)           += bcm
   machine-$(CONFIG_ARCH_BCM2835)               += bcm2835
 ++machine-$(CONFIG_ARCH_BERLIN)                += berlin
   machine-$(CONFIG_ARCH_CLPS711X)              += clps711x
   machine-$(CONFIG_ARCH_CNS3XXX)               += cns3xxx
   machine-$(CONFIG_ARCH_DAVINCI)               += davinci
   machine-$(CONFIG_ARCH_DOVE)          += dove
   machine-$(CONFIG_ARCH_EBSA110)               += ebsa110
 ++machine-$(CONFIG_ARCH_EFM32)         += efm32
   machine-$(CONFIG_ARCH_EP93XX)                += ep93xx
   machine-$(CONFIG_ARCH_EXYNOS)                += exynos
   machine-$(CONFIG_ARCH_GEMINI)                += gemini
   machine-$(CONFIG_ARCH_HIGHBANK)              += highbank
 ++machine-$(CONFIG_ARCH_HI3xxx)                += hisi
   machine-$(CONFIG_ARCH_INTEGRATOR)    += integrator
   machine-$(CONFIG_ARCH_IOP13XX)               += iop13xx
   machine-$(CONFIG_ARCH_IOP32X)                += iop32x
@@@@ -166,7 -167,6 -167,6 +166,7 @@@@ machine-$(CONFIG_ARCH_KIRKWOOD)           += kir
   machine-$(CONFIG_ARCH_KS8695)                += ks8695
   machine-$(CONFIG_ARCH_LPC32XX)               += lpc32xx
   machine-$(CONFIG_ARCH_MMP)           += mmp
 ++machine-$(CONFIG_ARCH_MOXART)                += moxart
   machine-$(CONFIG_ARCH_MSM)           += msm
   machine-$(CONFIG_ARCH_MV78XX0)               += mv78xx0
   machine-$(CONFIG_ARCH_MVEBU)         += mvebu
@@@@ -190,6 -190,7 -190,7 +190,6 @@@@ machine-$(CONFIG_ARCH_S5PC100)            += s5pc
   machine-$(CONFIG_ARCH_S5PV210)               += s5pv210
   machine-$(CONFIG_ARCH_SA1100)                += sa1100
   machine-$(CONFIG_ARCH_SHMOBILE)      += shmobile
 --machine-$(CONFIG_ARCH_SHMOBILE_MULTI)        += shmobile
   machine-$(CONFIG_ARCH_SIRF)          += prima2
   machine-$(CONFIG_ARCH_SOCFPGA)               += socfpga
   machine-$(CONFIG_ARCH_STI)           += sti
@@@@ -267,7 -268,6 -268,6 +267,7 @@@@ core-$(CONFIG_KVM_ARM_HOST)       += arch/ar
   core-y                               += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
   core-y                               += arch/arm/net/
   core-y                               += arch/arm/crypto/
 ++core-y                               += arch/arm/firmware/
   core-y                               += $(machdirs) $(platdirs)
   
   drivers-$(CONFIG_OPROFILE)      += arch/arm/oprofile/
diff --combined arch/arm/mm/init.c
index f57fb338cc8aaa2ee533ca77be3e06994a74b25f,ac1d883460c797626d91d544eae9ae1f59605204,1f7b19a470606726595ebc692f3b05aae94729c6..804d61566a53dd235750f44ed6ad7875df246b70
@@@@ -92,6 -92,9 -92,9 +92,6 @@@@ void show_mem(unsigned int filter
        printk("Mem-info:\n");
        show_free_areas(filter);
   
 --     if (filter & SHOW_MEM_FILTER_PAGE_COUNT)
 --             return;
 --
        for_each_bank (i, mi) {
                struct membank *bank = &mi->bank[i];
                unsigned int pfn1, pfn2;
@@@@ -142,6 -145,58 -145,58 +142,6 @@@@ static void __init find_limits(unsigne
        *max_high = bank_pfn_end(&mi->bank[mi->nr_banks - 1]);
   }
   
 --static void __init arm_bootmem_init(unsigned long start_pfn,
 --     unsigned long end_pfn)
 --{
 --     struct memblock_region *reg;
 --     unsigned int boot_pages;
 --     phys_addr_t bitmap;
 --     pg_data_t *pgdat;
 --
 --     /*
 --      * Allocate the bootmem bitmap page.  This must be in a region
 --      * of memory which has already been mapped.
 --      */
 --     boot_pages = bootmem_bootmap_pages(end_pfn - start_pfn);
 --     bitmap = memblock_alloc_base(boot_pages << PAGE_SHIFT, L1_CACHE_BYTES,
 --                             __pfn_to_phys(end_pfn));
 --
 --     /*
 --      * Initialise the bootmem allocator, handing the
 --      * memory banks over to bootmem.
 --      */
 --     node_set_online(0);
 --     pgdat = NODE_DATA(0);
 --     init_bootmem_node(pgdat, __phys_to_pfn(bitmap), start_pfn, end_pfn);
 --
 --     /* Free the lowmem regions from memblock into bootmem. */
 --     for_each_memblock(memory, reg) {
 --             unsigned long start = memblock_region_memory_base_pfn(reg);
 --             unsigned long end = memblock_region_memory_end_pfn(reg);
 --
 --             if (end >= end_pfn)
 --                     end = end_pfn;
 --             if (start >= end)
 --                     break;
 --
 --             free_bootmem(__pfn_to_phys(start), (end - start) << PAGE_SHIFT);
 --     }
 --
 --     /* Reserve the lowmem memblock reserved regions in bootmem. */
 --     for_each_memblock(reserved, reg) {
 --             unsigned long start = memblock_region_reserved_base_pfn(reg);
 --             unsigned long end = memblock_region_reserved_end_pfn(reg);
 --
 --             if (end >= end_pfn)
 --                     end = end_pfn;
 --             if (start >= end)
 --                     break;
 --
 --             reserve_bootmem(__pfn_to_phys(start),
 --                             (end - start) << PAGE_SHIFT, BOOTMEM_DEFAULT);
 --     }
 --}
 --
   #ifdef CONFIG_ZONE_DMA
   
   phys_addr_t arm_dma_zone_size __read_mostly;
@@@@ -174,14 -229,14 -229,14 +174,14 @@@@ void __init setup_dma_zone(const struc
   #ifdef CONFIG_ZONE_DMA
        if (mdesc->dma_zone_size) {
                arm_dma_zone_size = mdesc->dma_zone_size;
  -             arm_dma_limit = __pv_phys_offset + arm_dma_zone_size - 1;
  +             arm_dma_limit = PHYS_OFFSET + arm_dma_zone_size - 1;
        } else
                arm_dma_limit = 0xffffffff;
        arm_dma_pfn_limit = arm_dma_limit >> PAGE_SHIFT;
   #endif
   }
   
 --static void __init arm_bootmem_free(unsigned long min, unsigned long max_low,
 ++static void __init zone_sizes_init(unsigned long min, unsigned long max_low,
        unsigned long max_high)
   {
        unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES];
@@@@ -290,10 -345,11 -345,10 +290,11 @@@@ void __init arm_memblock_init(struct me
   #endif
   #ifdef CONFIG_BLK_DEV_INITRD
        /* FDT scan will populate initrd_start */
- -     if (initrd_start) {
+ +     if (initrd_start && !phys_initrd_size) {
                phys_initrd_start = __virt_to_phys(initrd_start);
                phys_initrd_size = initrd_end - initrd_start;
        }
+ +     initrd_start = initrd_end = 0;
        if (phys_initrd_size &&
            !memblock_is_region_memory(phys_initrd_start, phys_initrd_size)) {
                pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region - disabling initrd\n",
        dma_contiguous_reserve(min(arm_dma_limit, arm_lowmem_limit));
   
        arm_memblock_steal_permitted = false;
 --     memblock_allow_resize();
        memblock_dump_all();
   }
   
@@@@ -336,11 -393,12 -392,12 +337,11 @@@@ void __init bootmem_init(void
   {
        unsigned long min, max_low, max_high;
   
 ++     memblock_allow_resize();
        max_low = max_high = 0;
   
        find_limits(&min, &max_low, &max_high);
   
 --     arm_bootmem_init(min, max_low);
 --
        /*
         * Sparsemem tries to allocate bootmem in memory_present(),
         * so must be done after the fixed reservations
         * the sparse mem_map arrays initialized by sparse_init()
         * for memmap_init_zone(), otherwise all PFNs are invalid.
         */
 --     arm_bootmem_free(min, max_low, max_high);
 ++     zone_sizes_init(min, max_low, max_high);
   
        /*
         * This doesn't seem to be used by the Linux memory manager any
@@@@ -404,7 -462,7 -461,7 +405,7 @@@@ free_memmap(unsigned long start_pfn, un
         * free the section of the memmap array.
         */
        if (pg < pgend)
 --             free_bootmem(pg, pgend - pg);
 ++             memblock_free_early(pg, pgend - pg);
   }
   
   /*
@@@@ -530,7 -588,7 -587,7 +531,7 @@@@ void __init mem_init(void
        extern u32 itcm_end;
   #endif
   
 --     max_mapnr   = pfn_to_page(max_pfn + PHYS_PFN_OFFSET) - mem_map;
 ++     set_max_mapnr(pfn_to_page(max_pfn) - mem_map);
   
        /* this will put all unused low memory onto the freelists */
        free_unused_memmap(&meminfo);