Skip to content

Commit ab7cd8d

Browse files
committed
Merge tag 'drm-intel-fixes-2016-12-01' of git://anongit.freedesktop.org/git/drm-intel into drm-fixes
2 intel fixes. * tag 'drm-intel-fixes-2016-12-01' of git://anongit.freedesktop.org/git/drm-intel: drm/i915: drop the struct_mutex when wedged or trying to reset drm/i915: Don't touch NULL sg on i915_gem_object_get_pages_gtt() error
2 parents 83fb8b0 + e411072 commit ab7cd8d

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

drivers/gpu/drm/i915/i915_gem.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2268,7 +2268,7 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
22682268
page = shmem_read_mapping_page(mapping, i);
22692269
if (IS_ERR(page)) {
22702270
ret = PTR_ERR(page);
2271-
goto err_pages;
2271+
goto err_sg;
22722272
}
22732273
}
22742274
#ifdef CONFIG_SWIOTLB
@@ -2311,8 +2311,9 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
23112311

23122312
return 0;
23132313

2314-
err_pages:
2314+
err_sg:
23152315
sg_mark_end(sg);
2316+
err_pages:
23162317
for_each_sgt_page(page, sgt_iter, st)
23172318
put_page(page);
23182319
sg_free_table(st);

drivers/gpu/drm/i915/intel_display.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12260,7 +12260,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
1226012260
intel_crtc->reset_count = i915_reset_count(&dev_priv->gpu_error);
1226112261
if (i915_reset_in_progress_or_wedged(&dev_priv->gpu_error)) {
1226212262
ret = -EIO;
12263-
goto cleanup;
12263+
goto unlock;
1226412264
}
1226512265

1226612266
atomic_inc(&intel_crtc->unpin_work_count);
@@ -12352,6 +12352,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
1235212352
intel_unpin_fb_obj(fb, crtc->primary->state->rotation);
1235312353
cleanup_pending:
1235412354
atomic_dec(&intel_crtc->unpin_work_count);
12355+
unlock:
1235512356
mutex_unlock(&dev->struct_mutex);
1235612357
cleanup:
1235712358
crtc->primary->fb = old_fb;

0 commit comments

Comments
 (0)