1. 04 7月, 2013 5 次提交
    • J
      mm/m68k: prepare for killing free_all_bootmem_node() · b69a9787
      Jiang Liu 提交于
      Prepare for killing free_all_bootmem_node() by using free_all_bootmem().
      Signed-off-by: NJiang Liu <jiang.liu@huawei.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Greg Ungerer <gerg@uclinux.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b69a9787
    • J
      mm/m68k: prepare for removing num_physpages and simplify mem_init() · 9671468f
      Jiang Liu 提交于
      Prepare for removing num_physpages and simplify mem_init().
      Signed-off-by: NJiang Liu <jiang.liu@huawei.com>
      Acked-by: NGreg Ungerer <gerg@uclinux.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9671468f
    • J
      mm: concentrate modification of totalram_pages into the mm core · 0c988534
      Jiang Liu 提交于
      Concentrate code to modify totalram_pages into the mm core, so the arch
      memory initialized code doesn't need to take care of it.  With these
      changes applied, only following functions from mm core modify global
      variable totalram_pages: free_bootmem_late(), free_all_bootmem(),
      free_all_bootmem_node(), adjust_managed_page_count().
      
      With this patch applied, it will be much more easier for us to keep
      totalram_pages and zone->managed_pages in consistence.
      Signed-off-by: NJiang Liu <jiang.liu@huawei.com>
      Acked-by: NDavid Howells <dhowells@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: <sworddragon2@aol.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Jianguo Wu <wujianguo@huawei.com>
      Cc: Joonsoo Kim <js1304@gmail.com>
      Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Tang Chen <tangchen@cn.fujitsu.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Wen Congyang <wency@cn.fujitsu.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0c988534
    • J
      mm: enhance free_reserved_area() to support poisoning memory with zero · dbe67df4
      Jiang Liu 提交于
      Address more review comments from last round of code review.
      1) Enhance free_reserved_area() to support poisoning freed memory with
         pattern '0'. This could be used to get rid of poison_init_mem()
         on ARM64.
      2) A previous patch has disabled memory poison for initmem on s390
         by mistake, so restore to the original behavior.
      3) Remove redundant PAGE_ALIGN() when calling free_reserved_area().
      Signed-off-by: NJiang Liu <jiang.liu@huawei.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: <sworddragon2@aol.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Jianguo Wu <wujianguo@huawei.com>
      Cc: Joonsoo Kim <js1304@gmail.com>
      Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Tang Chen <tangchen@cn.fujitsu.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Wen Congyang <wency@cn.fujitsu.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dbe67df4
    • J
      mm: change signature of free_reserved_area() to fix building warnings · 11199692
      Jiang Liu 提交于
      Change signature of free_reserved_area() according to Russell King's
      suggestion to fix following build warnings:
      
        arch/arm/mm/init.c: In function 'mem_init':
        arch/arm/mm/init.c:603:2: warning: passing argument 1 of 'free_reserved_area' makes integer from pointer without a cast [enabled by default]
          free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
          ^
        In file included from include/linux/mman.h:4:0,
                         from arch/arm/mm/init.c:15:
        include/linux/mm.h:1301:22: note: expected 'long unsigned int' but argument is of type 'void *'
         extern unsigned long free_reserved_area(unsigned long start, unsigned long end,
      
         mm/page_alloc.c: In function 'free_reserved_area':
      >> mm/page_alloc.c:5134:3: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast [enabled by default]
         In file included from arch/mips/include/asm/page.h:49:0,
                          from include/linux/mmzone.h:20,
                          from include/linux/gfp.h:4,
                          from include/linux/mm.h:8,
                          from mm/page_alloc.c:18:
         arch/mips/include/asm/io.h:119:29: note: expected 'const volatile void *' but argument is of type 'long unsigned int'
         mm/page_alloc.c: In function 'free_area_init_nodes':
         mm/page_alloc.c:5030:34: warning: array subscript is below array bounds [-Warray-bounds]
      
      Also address some minor code review comments.
      Signed-off-by: NJiang Liu <jiang.liu@huawei.com>
      Reported-by: NArnd Bergmann <arnd@arndb.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Cc: <sworddragon2@aol.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Jianguo Wu <wujianguo@huawei.com>
      Cc: Joonsoo Kim <js1304@gmail.com>
      Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Tang Chen <tangchen@cn.fujitsu.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Wen Congyang <wency@cn.fujitsu.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      11199692
  2. 30 4月, 2013 1 次提交
  3. 04 3月, 2013 1 次提交
  4. 07 1月, 2013 1 次提交
    • G
      m68k: fix conditional use of init_pointer_table · d6fccc75
      Greg Ungerer 提交于
      Compiling 3.8-rc1 fails for some m68k targets (the non-mmu ones) with:
      
        CC      arch/m68k/mm/init.o
      arch/m68k/mm/init.c: In function ‘mem_init’:
      arch/m68k/mm/init.c:191:2: error: implicit declaration of function ‘init_pointer_table’
      arch/m68k/mm/init.c:191:36: error: ‘kernel_pg_dir’ undeclared (first use in this function)
      arch/m68k/mm/init.c:191:36: note: each undeclared identifier is reported only once for each function it appears in
      arch/m68k/mm/init.c:192:18: error: ‘PTRS_PER_PGD’ undeclared (first use in this function)
      arch/m68k/mm/init.c:194:4: error: implicit declaration of function ‘__pgd_page’
      arch/m68k/mm/init.c:198:6: error: ‘zero_pgtable’ undeclared (first use in this function)
      make[2]: *** [arch/m68k/mm/init.o] Error 1
      make[1]: *** [arch/m68k/mm] Error 2
      make[1]: Leaving directory `/home/gerg/new-wave.git/linux-3.x'
      make: *** [linux] Error 1
      
      Change the conditions that define init_pointer_table so that it matches what
      actually uses it.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      d6fccc75
  5. 14 11月, 2012 2 次提交
    • G
      m68k: move to a single instance of free_initmem() · f50bf88d
      Greg Ungerer 提交于
      Currently each sub-architecture has its own implementation if init_freemem().
      There is two different cases that the various implementations deal with.
      They either free the init memory, or they don't. We only need a single instance
      to cover all cases.
      
      The non-MMU version did some page alignment twidling, but this is not
      neccessary. The current linker script enforces page alignment. It also
      checked for CONFIG_RAMKERNEL, but this also is not necessary, the linker
      script always keeps the init sections in RAM.
      
      The MMU ColdFire version of free_initmem() was empty. There is no reason it
      can't carry out the freeing of the init memory. So it is now changed and
      tested to do this.
      
      For the other MMU cases the code is the same. For the general Motorola MMU
      case we free the init memory. For the SUN3 case we do nothing (though I
      think it could safely free the init memory as well).
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      f50bf88d
    • G
      m68k: merge MMU and non-MMU versions of mm/init.c · dd1cb3a7
      Greg Ungerer 提交于
      Some of the code in the existing mm/init_mm.c and mm/init_no.c files is
      the same, and if we merge them back to a single file we can save some code
      duplication.
      
      Although the old mem_init() code for non-MMU was a little different than
      the MMU version, it turns out we can use the same code. So I now we just
      use the MMU mem_init() code for all. It also means we now get identical
      console info messages for this code on kernel boot up.
      
      So merge the two files back into a single file.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      dd1cb3a7
  6. 09 10月, 2012 1 次提交
  7. 17 7月, 2012 1 次提交
  8. 27 6月, 2012 1 次提交
  9. 23 4月, 2012 1 次提交
  10. 29 3月, 2012 1 次提交
  11. 07 2月, 2012 1 次提交
  12. 22 1月, 2012 1 次提交
  13. 30 12月, 2011 6 次提交
  14. 24 12月, 2011 1 次提交
    • G
      m68k: print memory layout info in boot log · e87c09a8
      Greg Ungerer 提交于
      Output a table of the kernel memory regions at boot time.
      This is taken directly from the ARM architecture code that does this.
      The table looks like this:
      
      Virtual kernel memory layout:
          vector  : 0x00000000 - 0x00000400   (   0 KiB)
          kmap    : 0xd0000000 - 0xe0000000   ( 256 MiB)
          vmalloc : 0xc0000000 - 0xcfffffff   ( 255 MiB)
          lowmem  : 0x00000000 - 0x02000000   (  32 MiB)
            .init : 0x00128000 - 0x00134000   (  48 KiB)
            .text : 0x00020000 - 0x00118d54   ( 996 KiB)
            .data : 0x00118d60 - 0x00126000   (  53 KiB)
            .bss  : 0x00134000 - 0x001413e0   (  53 KiB)
      
      This has been very useful while debugging the ColdFire virtual memory
      support code. But in general I think it is nice to know extacly where
      the kernel has layed everything out on boot.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      e87c09a8
  15. 18 10月, 2011 3 次提交
  16. 31 7月, 2011 1 次提交
    • M
      m68k/atari: Reserve some ST-RAM early on for device buffer use · 217bbd81
      Michael Schmitz 提交于
      Based on an original patch from Michael Schmitz:
      
      Because mem_init() is now called before device init, devices that rely on
      ST-RAM may find all ST-RAM already allocated to other users by the time
      device init happens. In particular, a large initrd RAM disk may use up
      enough of ST-RAM to cause atari_stram_alloc() to resort to
      __get_dma_pages() allocation.
      
      In the current state of Atari memory management, all of RAM is marked
      DMA capable, so __get_dma_pages() may well return RAM that is not in actual
      fact DMA capable. Using this for frame buffer or SCSI DMA buffer causes
      subtle failure.
      
      The ST-RAM allocator has been changed to allocate memory from a pool of
      reserved ST-RAM of configurable size, set aside on ST-RAM init (i.e.
      before mem_init()). As long as this pool is not exhausted, allocation of
      real ST-RAM can be guaranteed.
      
      Other changes:
        - Replace the custom allocator in the ST-RAM pool by the existing allocator
          in the resource subsystem,
        - Remove mem_init_done and its hook, as memory init is now done before
          device init,
        - Remove /proc/stram, as ST-RAM usage now shows up under /proc/iomem, e.g.
      
      	005f2000-006f1fff : ST-RAM Pool
      	  005f2000-0063dfff : atafb
      	  0063e000-00641fff : ataflop
      	  00642000-00642fff : SCSI
      Signed-off-by: NMichael Schmitz <schmitz@debian.org>
      [Andreas Schwab <schwab@linux-m68k.org>: Use memparse()]
      [Geert: Use the resource subsystem instead of a custom allocator]
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      217bbd81
  17. 25 7月, 2011 2 次提交
  18. 25 5月, 2011 1 次提交
  19. 24 5月, 2011 5 次提交
  20. 27 4月, 2011 1 次提交
    • M
      m68k/mm: Set all online nodes in N_NORMAL_MEMORY · 4aac0b48
      Michael Schmitz 提交于
      For m68k, N_NORMAL_MEMORY represents all nodes that have present memory
      since it does not support HIGHMEM.  This patch sets the bit at the time
      node_present_pages has been set by free_area_init_node.
      At the time the node is brought online, the node state would have to be
      done unconditionally since information about present memory has not yet
      been recorded.
      
      If N_NORMAL_MEMORY is not accurate, slub may encounter errors since it
      uses this nodemask to setup per-cache kmem_cache_node data structures.
      
      This pach is an alternative to the one proposed by David Rientjes
      <rientjes@google.com> attempting to set node state immediately when
      bringing the node online.
      Signed-off-by: NMichael Schmitz <schmitz@debian.org>
      Tested-by: NThorsten Glaser <tg@debian.org>
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      CC: stable@kernel.org
      4aac0b48
  21. 25 3月, 2011 1 次提交
    • G
      m68k: merge m68k and m68knommu arch directories · 66d857b0
      Greg Ungerer 提交于
      There is a lot of common code that could be shared between the m68k
      and m68knommu arch branches. It makes sense to merge the two branches
      into a single directory structure so that we can more easily share
      that common code.
      
      This is a brute force merge, based on a script from Stephen King
      <sfking@fdwdc.com>, which was originally written by Arnd Bergmann
      <arnd@arndb.de>.
      
      > The script was inspired by the script Sam Ravnborg used to merge the
      > includes from m68knommu. For those files common to both arches but
      > differing in content, the m68k version of the file is renamed to
      > <file>_mm.<ext> and the m68knommu version of the file is moved into the
      > corresponding m68k directory and renamed <file>_no.<ext> and a small
      > wrapper file <file>.<ext> is used to select between the two version. Files
      > that are common to both but don't differ are removed from the m68knommu
      > tree and files and directories that are unique to the m68knommu tree are
      > moved to the m68k tree. Finally, the arch/m68knommu tree is removed.
      >
      > To select between the the versions of the files, the wrapper uses
      >
      > #ifdef CONFIG_MMU
      > #include <file>_mm.<ext>
      > #else
      > #include <file>_no.<ext>
      > #endif
      
      On top of this file merge I have done a simplistic merge of m68k and
      m68knommu Kconfig, which primarily attempts to keep existing options and
      menus in place. Other than a handful of options being moved it produces
      identical .config outputs on m68k and m68knommu targets I tested it on.
      
      With this in place there is now quite a bit of scope for merge cleanups
      in future patches.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      66d857b0
  22. 17 3月, 2011 1 次提交
  23. 18 5月, 2010 1 次提交