1. 28 6月, 2013 4 次提交
  2. 16 4月, 2013 1 次提交
  3. 12 4月, 2013 1 次提交
  4. 23 2月, 2013 1 次提交
  5. 08 2月, 2013 1 次提交
    • D
      drm/ttm: fix fence locking in ttm_buffer_object_transfer, 2nd try · ff7c60c5
      Daniel Vetter 提交于
      This fixes up
      
      commit e8e89622
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Tue Dec 18 22:25:11 2012 +0100
      
          drm/ttm: fix fence locking in ttm_buffer_object_transfer
      
      which leaves behind a might_sleep in atomic context, since the
      fence_lock spinlock is held over a kmalloc(GFP_KERNEL) call. The fix
      is to revert the above commit and only take the lock where we need it,
      around the call to ->sync_obj_ref.
      
      v2: Fixup things noticed by Maarten Lankhorst:
      - Brown paper bag locking bug.
      - No need for kzalloc if we clear the entire thing on the next line.
      - check for bo->sync_obj (totally unlikely race, but still someone
        else could have snuck in) and clear fbo->sync_obj if it's cleared
        already.
      Reported-by: NDave Airlie <airlied@gmail.com>
      Cc: Jerome Glisse <jglisse@redhat.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      ff7c60c5
  6. 21 1月, 2013 2 次提交
  7. 15 1月, 2013 5 次提交
  8. 08 1月, 2013 1 次提交
  9. 20 12月, 2012 1 次提交
    • M
      drm/ttm: fix delayed ttm_bo_cleanup_refs_and_unlock delayed handling · 0953e76e
      Maarten Lankhorst 提交于
      Fix regression introduced by 85b144f8
      "drm/ttm: call ttm_bo_cleanup_refs with reservation and lru lock held, v3"
      
      Slowpath ttm_bo_cleanup_refs_and_unlock accidentally tried to increase
      refcount on &bo->sync_obj instead of bo->sync_obj.
      
      The compiler didn't complain since sync_obj_ref takes a void pointer,
      so it was still valid c.
      
      This could result in lockups, memory corruptions, and warnings like
      these when graphics card VRAM usage is high:
      
      ------------[ cut here ]------------
      WARNING: at include/linux/kref.h:42 radeon_fence_ref+0x2c/0x40()
      Hardware name: System Product Name
      Pid: 157, comm: X Not tainted 3.7.0-rc7-00520-g85b144f8-dirty #174
      Call Trace:
      [<ffffffff81058c84>] ? warn_slowpath_common+0x74/0xb0
      [<ffffffff8129273c>] ? radeon_fence_ref+0x2c/0x40
      [<ffffffff8125e95c>] ? ttm_bo_cleanup_refs_and_unlock+0x18c/0x2d0
      [<ffffffff8125f17c>] ? ttm_mem_evict_first+0x1dc/0x2a0
      [<ffffffff81264452>] ? ttm_bo_man_get_node+0x62/0xb0
      [<ffffffff8125f4ce>] ? ttm_bo_mem_space+0x28e/0x340
      [<ffffffff8125fb0c>] ? ttm_bo_move_buffer+0xfc/0x170
      [<ffffffff810de172>] ? kmem_cache_alloc+0xb2/0xc0
      [<ffffffff8125fc15>] ? ttm_bo_validate+0x95/0x110
      [<ffffffff8125ff7c>] ? ttm_bo_init+0x2ec/0x3b0
      [<ffffffff8129419a>] ? radeon_bo_create+0x18a/0x200
      [<ffffffff81293e80>] ? radeon_bo_clear_va+0x40/0x40
      [<ffffffff812a5342>] ? radeon_gem_object_create+0x92/0x160
      [<ffffffff812a575c>] ? radeon_gem_create_ioctl+0x6c/0x150
      [<ffffffff812a529f>] ? radeon_gem_object_free+0x2f/0x40
      [<ffffffff81246b60>] ? drm_ioctl+0x420/0x4f0
      [<ffffffff812a56f0>] ? radeon_gem_pwrite_ioctl+0x20/0x20
      [<ffffffff810f53a4>] ? do_vfs_ioctl+0x2e4/0x4e0
      [<ffffffff810e5588>] ? vfs_read+0x118/0x160
      [<ffffffff810f55ec>] ? sys_ioctl+0x4c/0xa0
      [<ffffffff810e5851>] ? sys_read+0x51/0xa0
      [<ffffffff814b0612>] ? system_call_fastpath+0x16/0x1b
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Reported-by: NMarkus Trippelsdorf <markus@trippelsdorf.de>
      Acked-by: NPaul Menzel <paulepanter@users.sourceforge.net>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      0953e76e
  10. 10 12月, 2012 5 次提交
  11. 28 11月, 2012 3 次提交
  12. 20 11月, 2012 9 次提交
  13. 16 11月, 2012 2 次提交
  14. 07 11月, 2012 1 次提交
  15. 23 10月, 2012 2 次提交
    • T
      drm/ttm: Fix a theoretical race in ttm_bo_cleanup_refs() · b8e902f2
      Thomas Hellstrom 提交于
      In theory, that function could release the lru lock between
      checking for bo on ddestroy list and a successful reserve if the bo
      was already reserved, and the function was called with waiting reserves
      allowed.
      However, all current reservers of a bo on the ddestroy list would
      atomically take the bo off the list after a successful reserve so this
      race should not have been hit, so no need to backport for stable.
      
      This patch also fixes a case found by Maarten Lankhorst where
      ttm_mem_evict_first called with no_wait_gpu would incorrectly
      spin waiting for bo idle if trying to evict a busy buffer that
      also sits on the ddestroy list.
      Signed-off-by: NThomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      b8e902f2
    • T
      drm/ttm: Fix a theoretical race · 7bc17a78
      Thomas Hellstrom 提交于
      The ttm_mem_evict_first function could theoretically drop the
      lru lock without retrying if a reservation from off the LRU list
      ended up waiting.
      However, since currently there are no users that could cause a wait
      in that situation so this is not suitable for stable
      Signed-off-by: NThomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      7bc17a78
  16. 09 10月, 2012 1 次提交
    • K
      mm: kill vma flag VM_RESERVED and mm->reserved_vm counter · 314e51b9
      Konstantin Khlebnikov 提交于
      A long time ago, in v2.4, VM_RESERVED kept swapout process off VMA,
      currently it lost original meaning but still has some effects:
      
       | effect                 | alternative flags
      -+------------------------+---------------------------------------------
      1| account as reserved_vm | VM_IO
      2| skip in core dump      | VM_IO, VM_DONTDUMP
      3| do not merge or expand | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP
      4| do not mlock           | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP
      
      This patch removes reserved_vm counter from mm_struct.  Seems like nobody
      cares about it, it does not exported into userspace directly, it only
      reduces total_vm showed in proc.
      
      Thus VM_RESERVED can be replaced with VM_IO or pair VM_DONTEXPAND | VM_DONTDUMP.
      
      remap_pfn_range() and io_remap_pfn_range() set VM_IO|VM_DONTEXPAND|VM_DONTDUMP.
      remap_vmalloc_range() set VM_DONTEXPAND | VM_DONTDUMP.
      
      [akpm@linux-foundation.org: drivers/vfio/pci/vfio_pci.c fixup]
      Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Carsten Otte <cotte@de.ibm.com>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Cyrill Gorcunov <gorcunov@openvz.org>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: James Morris <james.l.morris@oracle.com>
      Cc: Jason Baron <jbaron@redhat.com>
      Cc: Kentaro Takeda <takedakn@nttdata.co.jp>
      Cc: Matt Helsley <matthltc@us.ibm.com>
      Cc: Nick Piggin <npiggin@kernel.dk>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Robert Richter <robert.richter@amd.com>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: Venkatesh Pallipadi <venki@google.com>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      314e51b9