• Chris Wilson's avatar
    drm/i915: Avoid might_fault during pwrite whilst holding our mutex · b47b30cc
    Chris Wilson authored
    ... and so prevent a potential circular reference:
    
      [ INFO: possible circular locking dependency detected ]
      2.6.37-rc1-uwe1+ #4
      -------------------------------------------------------
      Xorg/1401 is trying to acquire lock:
       (&mm->mmap_sem){++++++}, at: [<c01e4ddb>] might_fault+0x4b/0xa0
    
      but task is already holding lock:
       (&dev->struct_mutex){+.+.+.}, at: [<f869c3ac>]
      i915_mutex_lock_interruptible+0x3c/0x60 [i915]
    
      which lock already depends on the new lock.
    
    When the locking around the pwrite ioctl was simplified, I did not spot
    that the phys path never took any locks and so we introduced this
    potential circular reference.
    Reported-by: default avatarUwe Helm <uwe.helm@googlemail.com>
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    b47b30cc
i915_gem.c 130 KB