1. 07 Sep, 2006 2 commits
    • Lachlan McIlroy's avatar
      [XFS] Fix ABBA deadlock between i_mutex and iolock. Avoid calling · 721259bc
      Lachlan McIlroy authored
      __blockdev_direct_IO for the DIO_OWN_LOCKING case for direct I/O reads
      since it drops and reacquires the i_mutex while holding the iolock and
      this violates the locking order.
      
      SGI-PV: 955696
      SGI-Modid: xfs-linux-melb:xfs-kern:26898a
      Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: default avatarDavid Chatterton <chatz@sgi.com>
      721259bc
    • David Chinner's avatar
      [XFS] Prevent free space oversubscription and xfssyncd looping. · 4be536de
      David Chinner authored
      The fix for recent ENOSPC deadlocks introduced certain limitations on
      allocations. The fix could cause xfssyncd to loop endlessly if we did not
      leave some space free for the allocator to work correctly. Basically, we
      needed to ensure that we had at least 4 blocks free for an AG free list
      and a block for the inode bmap btree at all times.
      
      However, this did not take into account the fact that each AG has a free
      list that needs 4 blocks. Hence any filesystem with more than one AG could
      cause oversubscription of free space and make xfssyncd spin forever trying
      to allocate space needed for AG freelists that was not available in the
      AG.
      
      The following patch reserves space for the free lists in all AGs plus the
      inode bmap btree which prevents oversubscription. It also prevents those
      blocks from being reported as free space (as they can never be used) and
      makes the SMP in-core superblock accounting code and the reserved block
      ioctl respect this requirement.
      
      SGI-PV: 955674
      SGI-Modid: xfs-linux-melb:xfs-kern:26894a
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarDavid Chatterton <chatz@sgi.com>
      4be536de
  2. 06 Sep, 2006 11 commits
  3. 04 Sep, 2006 2 commits
  4. 02 Sep, 2006 4 commits
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-serial · 3fbcd940
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-serial:
        [SERIAL] 8250: constify some serial structs
        [SERIAL] Make uart_match_port() work with all memory mapped UARTs
      3fbcd940
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · e6944202
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] 3762/1: Fix ptrace cache coherency bug for ARM1136 VIPT nonaliasing Harvard caches
        [ARM] 3765/1: S3C24XX: cleanup include/asm-arm/arch-s3c2410/dma.h
        [ARM] 3764/1: S3C24XX: change type naming to kernel style
        [ARM] 3763/1: add both rtcs to csb337 defconfig
        [ARM] Fix ARM __raw_read_trylock() implementation
        [ARM] 3750/3: Fix double VFP emulation for EABI kernels
      e6944202
    • Oleg Nesterov's avatar
      [PATCH] eligible_child: remove an obsolete ->tgid check · 3b6362b8
      Oleg Nesterov authored
      It is not possible to find a sub-thread in ->children/->ptrace_children
      lists, ptrace_attach() does not allow to attach to sub-threads.
      
      Even if it was possible to ptrace the task from the same thread group,
      we can't allow to release ->group_leader while there are others (ptracer)
      threads in the same group.
      Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3b6362b8
    • George G. Davis's avatar
      [ARM] 3762/1: Fix ptrace cache coherency bug for ARM1136 VIPT nonaliasing Harvard caches · a188ad2b
      George G. Davis authored
      Patch from George G. Davis
      
      Resolve ARM1136 VIPT non-aliasing cache coherency issues observed when
      using ptrace to set breakpoints and cleanup copy_{to,from}_user_page()
      while we're here as requested by Russell King because "it's also far
      too heavy on non-v6 CPUs".
      
      NOTES:
      
      1. Only access_process_vm() calls copy_{to,from}_user_page().
      2. access_process_vm() calls get_user_pages() to pin down the "page".
      3. get_user_pages() calls flush_dcache_page(page) which ensures cache
         coherency between kernel and userspace mappings of "page".  However
         flush_dcache_page(page) may not invalidate I-Cache over this range
         for all cases, specifically, I-Cache is not invalidated for the VIPT
         non-aliasing case.  So memory is consistent between kernel and user
         space mappings of "page" but I-Cache may still be hot over this
         range.  IOW, we don't have to worry about flush_cache_page() before
         memcpy().
      4. Now, for the copy_to_user_page() case, after memcpy(), we must flush
         the caches so memory is consistent with kernel cache entries and
         invalidate the I-Cache if this mm region is executable.  We don't
         need to do anything after memcpy() for the copy_from_user_page()
         case since kernel cache entries will be invalidated via the same
         process above if we access "page" again.  The flush_ptrace_access()
         function (borrowed from SPARC64 implementation) is added to handle
         cache flushing after memcpy() for the copy_to_user_page() case.
      Signed-off-by: default avatarGeorge G. Davis <gdavis@mvista.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      a188ad2b
  5. 01 Sep, 2006 21 commits