Module Name: src
Committed By: riastradh
Date: Sun Sep 8 16:28:27 UTC 2013
Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_dma.c
i915_gem.c
src/sys/external/bsd/drm2/i915drm [riastradh-drm2]: i915_gem_gtt.c
Log Message:
Still more error branch cleanup.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.30 -r1.1.1.1.2.31 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c
cvs rdiff -u -r1.1.1.1.2.14 -r1.1.1.1.2.15 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
cvs rdiff -u -r1.1.2.5 -r1.1.2.6 \
src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.30 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.31
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.1.1.1.2.30 Sun Sep 8 16:27:15 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c Sun Sep 8 16:28:27 2013
@@ -1758,9 +1758,7 @@ out_gem_unload:
intel_teardown_gmbus(dev);
intel_teardown_mchbar(dev);
-#ifdef __NetBSD__ /* XXX gt fini */
intel_gt_fini(dev);
-#endif
destroy_workqueue(dev_priv->wq);
out_mtrrfree:
if (dev_priv->mm.gtt_mtrr >= 0) {
@@ -1873,6 +1871,7 @@ int i915_driver_unload(struct drm_device
i915_gem_context_fini(dev);
mutex_unlock(&dev->struct_mutex);
i915_gem_cleanup_aliasing_ppgtt(dev);
+ i915_gem_fini_global_gtt(dev);
i915_gem_cleanup_stolen(dev);
drm_mm_takedown(&dev_priv->mm.stolen);
@@ -1906,9 +1905,11 @@ int i915_driver_unload(struct drm_device
intel_teardown_gmbus(dev);
intel_teardown_mchbar(dev);
+ intel_gt_fini(dev);
destroy_workqueue(dev_priv->wq);
+ i915_gem_gtt_fini(dev);
pci_dev_put(dev_priv->bridge_dev);
kfree(dev->dev_private);
Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.14 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.15
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.1.1.1.2.14 Sun Sep 8 16:05:06 2013
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c Sun Sep 8 16:28:27 2013
@@ -4471,9 +4471,7 @@ int i915_gem_init(struct drm_device *dev
ret = i915_gem_init_aliasing_ppgtt(dev);
if (ret) {
-#ifdef __NetBSD__ /* XXX fini global gtt */
i915_gem_fini_global_gtt(dev);
-#endif
mutex_unlock(&dev->struct_mutex);
return ret;
}
Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c
diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.1.2.5 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.1.2.6
--- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.1.2.5 Sun Sep 8 16:13:55 2013
+++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Sun Sep 8 16:28:27 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: i915_gem_gtt.c,v 1.1.2.5 2013/09/08 16:13:55 riastradh Exp $ */
+/* $NetBSD: i915_gem_gtt.c,v 1.1.2.6 2013/09/08 16:28:27 riastradh Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.1.2.5 2013/09/08 16:13:55 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.1.2.6 2013/09/08 16:28:27 riastradh Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -244,6 +244,17 @@ void
i915_gem_fini_global_gtt(struct drm_device *dev)
{
struct drm_i915_private *const dev_priv = dev->dev_private;
+ struct drm_i915_gem_object *obj, *next;
+ int ret;
+
+ /* Empty the mm before taking it down. */
+ list_for_each_entry_safe(obj, next, &dev_priv->mm.unbound_list,
+ gtt_list) {
+ ret = i915_gem_object_unbind(obj);
+ if (ret)
+ DRM_ERROR("Unable to unbind object %p: %d\n", obj,
+ ret);
+ }
drm_mm_takedown(&dev_priv->mm.gtt_space);
}