1. 24 7月, 2009 1 次提交
  2. 16 3月, 2009 1 次提交
    • N
      [ARM] introduce dma_cache_maint_page() · 43377453
      Nicolas Pitre 提交于
      This is a helper to be used by the DMA mapping API to handle cache
      maintenance for memory identified by a page structure instead of a
      virtual address.  Those pages may or may not be highmem pages, and
      when they're highmem pages, they may or may not be virtually mapped.
      When they're not mapped then there is no L1 cache to worry about. But
      even in that case the L2 cache must be processed since unmapped highmem
      pages can still be L2 cached.
      Signed-off-by: NNicolas Pitre <nico@marvell.com>
      43377453
  3. 13 3月, 2009 1 次提交
    • R
      [ARM] Fix virtual to physical translation macro corner cases · 1522ac3e
      Russell King 提交于
      The current use of these macros works well when the conversion is
      entirely linear.  In this case, we can be assured that the following
      holds true:
      
      	__va(p + s) - s = __va(p)
      
      However, this is not always the case, especially when there is a
      non-linear conversion (eg, when there is a 3.5GB hole in memory.)
      In this case, if 's' is the size of the region (eg, PAGE_SIZE) and
      'p' is the final page, the above is most definitely not true.
      
      So, we must ensure that __va() and __pa() are only used with valid
      kernel direct mapped RAM addresses.  This patch tweaks the code
      to achieve this.
      Tested-by: NCharles Moschel <fred99@carolina.rr.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      1522ac3e
  4. 08 1月, 2009 1 次提交
    • D
      NOMMU: Rename ARM's struct vm_region · 9c93af1e
      David Howells 提交于
      Rename ARM's struct vm_region so that I can introduce my own global version
      for NOMMU.  It's feasible that the ARM version may wish to use my global one
      instead.
      
      The NOMMU vm_region struct defines areas of the physical memory map that are
      under mmap.  This may include chunks of RAM or regions of memory mapped
      devices, such as flash.  It is also used to retain copies of file content so
      that shareable private memory mappings of files can be made.  As such, it may
      be compatible with what is described in the banner comment for ARM's vm_region
      struct.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      9c93af1e
  5. 30 9月, 2008 1 次提交
  6. 29 9月, 2008 1 次提交
  7. 26 9月, 2008 2 次提交
  8. 25 9月, 2008 1 次提交
  9. 19 7月, 2008 1 次提交
  10. 11 11月, 2007 1 次提交
  11. 13 10月, 2007 1 次提交
  12. 08 2月, 2007 3 次提交
  13. 13 12月, 2006 1 次提交
    • R
      [ARM] Unuse another Linux PTE bit · ad1ae2fe
      Russell King 提交于
      L_PTE_ASID is not really required to be stored in every PTE, since we
      can identify it via the address passed to set_pte_at().  So, create
      set_pte_ext() which takes the address of the PTE to set, the Linux
      PTE value, and the additional CPU PTE bits which aren't encoded in
      the Linux PTE value.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      ad1ae2fe
  14. 23 11月, 2006 1 次提交
  15. 02 4月, 2006 1 次提交
    • L
      [ARM] 3439/2: xsc3: add I/O coherency support · 23759dc6
      Lennert Buytenhek 提交于
      Patch from Lennert Buytenhek
      
      This patch adds support for the I/O coherent cache available on the
      xsc3.  The approach is to provide a simple API to determine whether the
      chipset supports coherency by calling arch_is_coherent() and then
      setting the appropriate system memory PTE and PMD bits.  In addition,
      we call this API on dma_alloc_coherent() and dma_map_single() calls.
      A generic version exists that will compile out all the coherency-related
      code that is not needed on the majority of ARM systems.
      
      Note that we do not check for coherency in the dma_alloc_writecombine()
      function as that still requires a special PTE setting.  We also don't
      touch dma_mmap_coherent() as that is a special ARM-only API that is by
      definition only used on non-coherent system.
      Signed-off-by: NDeepak Saxena <dsaxena@plexity.net>
      Signed-off-by: NLennert Buytenhek <buytenh@wantstofly.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      23759dc6
  16. 22 3月, 2006 1 次提交
  17. 13 1月, 2006 1 次提交
  18. 04 1月, 2006 1 次提交
    • R
      [ARM] Cleanup ARM includes · 78ff18a4
      Russell King 提交于
      arch/arm/kernel/entry-armv.S has contained a comment suggesting
      that asm/hardware.h and asm/arch/irqs.h should be moved into the
      asm/arch/entry-macro.S include.  So move the includes to these
      two files as required.
      
      Add missing includes (asm/hardware.h, asm/io.h) to asm/arch/system.h
      includes which use those facilities, and remove asm/io.h from
      kernel/process.c.
      
      Remove other unnecessary includes from arch/arm/kernel, arch/arm/mm
      and arch/arm/mach-footbridge.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      78ff18a4
  19. 25 11月, 2005 1 次提交
    • R
      [ARM] Do not call flush_tlb_kernel_range() with IRQs disabled. · 5edf71ae
      Russell King 提交于
      We must not call TLB maintainence operations with interrupts disabled,
      otherwise we risk a lockup in the SMP IPI code.
      
      This means that consistent_free() can not be called from a context with
      IRQs disabled.  In addition, we must not hold the lock in consistent_free
      when we call flush_tlb_kernel_range().  However, we must continue to
      prevent consistent_alloc() from re-using the memory region until we've
      finished tearing down the mapping and dealing with the TLB.
      
      Therefore, leave the vm_region entry in the list, but mark it inactive
      before dropping the lock and starting the tear-down process.  After the
      mapping has been torn down, re-acquire the lock and remove the entry
      from the list.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      5edf71ae
  20. 30 10月, 2005 1 次提交
    • H
      [PATCH] mm: init_mm without ptlock · 872fec16
      Hugh Dickins 提交于
      First step in pushing down the page_table_lock.  init_mm.page_table_lock has
      been used throughout the architectures (usually for ioremap): not to serialize
      kernel address space allocation (that's usually vmlist_lock), but because
      pud_alloc,pmd_alloc,pte_alloc_kernel expect caller holds it.
      
      Reverse that: don't lock or unlock init_mm.page_table_lock in any of the
      architectures; instead rely on pud_alloc,pmd_alloc,pte_alloc_kernel to take
      and drop it when allocating a new one, to check lest a racing task already
      did.  Similarly no page_table_lock in vmalloc's map_vm_area.
      
      Some temporary ugliness in __pud_alloc and __pmd_alloc: since they also handle
      user mms, which are converted only by a later patch, for now they have to lock
      differently according to whether or not it's init_mm.
      
      If sources get muddled, there's a danger that an arch source taking
      init_mm.page_table_lock will be mixed with common source also taking it (or
      neither take it).  So break the rules and make another change, which should
      break the build for such a mismatch: remove the redundant mm arg from
      pte_alloc_kernel (ppc64 scrapped its distinct ioremap_mm in 2.6.13).
      
      Exceptions: arm26 used pte_alloc_kernel on user mm, now pte_alloc_map; ia64
      used pte_alloc_map on init_mm, now pte_alloc_kernel; parisc had bad args to
      pmd_alloc and pte_alloc_kernel in unused USE_HPPA_IOREMAP code; ppc64
      map_io_page forgot to unlock on failure; ppc mmu_mapin_ram and ppc64 im_free
      took page_table_lock for no good reason.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      872fec16
  21. 28 10月, 2005 2 次提交
  22. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4