1. 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
  2. 09 10月, 2012 1 次提交
  3. 17 7月, 2012 1 次提交
  4. 27 6月, 2012 1 次提交
  5. 23 4月, 2012 1 次提交
  6. 29 3月, 2012 1 次提交
  7. 07 2月, 2012 1 次提交
  8. 22 1月, 2012 1 次提交
  9. 30 12月, 2011 6 次提交
  10. 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
  11. 18 10月, 2011 3 次提交
  12. 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
  13. 25 7月, 2011 2 次提交
  14. 25 5月, 2011 1 次提交
  15. 24 5月, 2011 5 次提交
  16. 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
  17. 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
  18. 17 3月, 2011 1 次提交
  19. 18 5月, 2010 1 次提交
  20. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  21. 28 2月, 2010 2 次提交
  22. 22 9月, 2009 1 次提交
  23. 22 6月, 2009 1 次提交
  24. 13 1月, 2009 1 次提交
  25. 15 10月, 2008 1 次提交
  26. 27 7月, 2008 1 次提交