1. 01 7月, 2008 1 次提交
    • A
      powerpc: Prevent memory corruption due to cache invalidation of unaligned DMA buffer · 03d70617
      Andrew Lewis 提交于
      On PowerPC processors with non-coherent cache architectures the DMA
      subsystem calls invalidate_dcache_range() before performing a DMA read
      operation.  If the address and length of the DMA buffer are not aligned
      to a cache-line boundary this can result in memory outside of the DMA
      buffer being invalidated in the cache.  If this memory has an
      uncommitted store then the data will be lost and a subsequent read of
      that address will result in an old value being returned from main memory.
      
      Only when the DMA buffer starts on a cache-line boundary and is an exact
      mutiple of the cache-line size can invalidate_dcache_range() be called,
      otherwise flush_dcache_range() must be called.  flush_dcache_range()
      will first flush uncommitted writes, and then invalidate the cache.
      
      Signed-off-by: Andrew Lewis <andrew-lewis at netspace.net.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      03d70617
  2. 08 5月, 2007 1 次提交
  3. 07 2月, 2007 1 次提交
    • V
      [POWERPC] 8xx: generic 8xx code arch/powerpc port · 5902ebce
      Vitaly Bordug 提交于
      Including support for non-coherent cache, some mm-related things +
      relevant field in Kconfig and Makefiles. Also included rheap.o compilation
      if 8xx is defined.
      
      Non-coherent mapping were refined and renamed according to Cristoph
      Hellwig. Orphaned functions were cleaned up.
      
      [Also removed arch/ppc/kernel/dma-mapping.c, because otherwise
      compiling with ARCH=ppc for a non DMA-cache-coherent platform ends up
      with two copies of __dma_alloc_coherent etc.
       -- paulus.]
      Signed-off-by: NVitaly Bordug <vbordug@ru.mvista.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5902ebce
  4. 01 7月, 2006 1 次提交
  5. 22 3月, 2006 1 次提交
  6. 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
  7. 28 10月, 2005 1 次提交
  8. 12 10月, 2005 1 次提交
    • P
      [PATCH] ppc highmem fix · a0c111c6
      Paolo Galtieri 提交于
      I've noticed that the calculations for seg_size and nr_segs in
      __dma_sync_page_highmem() (arch/ppc/kernel/dma-mapping.c) are wrong.  The
      incorrect calculations can result in either an oops or a panic when running
      fsck depending on the size of the partition.
      
      The problem with the seg_size calculation is that it can result in a
      negative number if size is offset > size.  The problem with the nr_segs
      caculation is returns the wrong number of segments, e.g.  it returns 1 when
      size is 200 and offset is 4095, when it should return 2 or more.
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a0c111c6
  9. 11 9月, 2005 1 次提交
  10. 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