diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2009-09-14 11:50:25 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-09-17 17:43:28 -0400 |
commit | 4960aaca14010b9ff92e5726dd178cbd6805d412 (patch) | |
tree | 7795fc2e101ff49d9ad99386c1d6a8d0c1263bae /drivers/gpu | |
parent | c1a1cdc159e211f045290f61ac95092e9708f5bc (diff) |
drm/i915: Add buffer to inactive list immediately during fault
If we failed to set the domain, the buffer was no longer being tracked
on any list.
Cc: stable@kernel.org
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index f0f6f668a61e..441088b37d9f 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -1160,14 +1160,13 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) | |||
1160 | mutex_unlock(&dev->struct_mutex); | 1160 | mutex_unlock(&dev->struct_mutex); |
1161 | return VM_FAULT_SIGBUS; | 1161 | return VM_FAULT_SIGBUS; |
1162 | } | 1162 | } |
1163 | list_add_tail(&obj_priv->list, &dev_priv->mm.inactive_list); | ||
1163 | 1164 | ||
1164 | ret = i915_gem_object_set_to_gtt_domain(obj, write); | 1165 | ret = i915_gem_object_set_to_gtt_domain(obj, write); |
1165 | if (ret) { | 1166 | if (ret) { |
1166 | mutex_unlock(&dev->struct_mutex); | 1167 | mutex_unlock(&dev->struct_mutex); |
1167 | return VM_FAULT_SIGBUS; | 1168 | return VM_FAULT_SIGBUS; |
1168 | } | 1169 | } |
1169 | |||
1170 | list_add_tail(&obj_priv->list, &dev_priv->mm.inactive_list); | ||
1171 | } | 1170 | } |
1172 | 1171 | ||
1173 | /* Need a new fence register? */ | 1172 | /* Need a new fence register? */ |