From: Eric Anholt <eric@anholt.net>
Date: Tue, 26 Jul 2016 20:47:13 +0000 (-0700)
Subject: drm/vc4: Free hang state before destroying BO cache.
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=def96527707e1978a0c88e75d13b082f51460d5c;p=openwrt%2Fstaging%2Fblogic.git

drm/vc4: Free hang state before destroying BO cache.

The BO cache will complain if BOs are still allocated when we try to
destroy it (since freeing those BOs would try to hit the cache).  You
could hit this if you were to unload the module after a GPU hang.

Signed-off-by: Eric Anholt <eric@anholt.net>
Fixes: 214613656b51 ("drm/vc4: Add an interface for capturing the GPU state after a hang.")
---

diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c
index bfd1b5280ff3..fba2c831afe6 100644
--- a/drivers/gpu/drm/vc4/vc4_gem.c
+++ b/drivers/gpu/drm/vc4/vc4_gem.c
@@ -942,8 +942,8 @@ vc4_gem_destroy(struct drm_device *dev)
 		vc4->overflow_mem = NULL;
 	}
 
-	vc4_bo_cache_destroy(dev);
-
 	if (vc4->hang_state)
 		vc4_free_hang_state(dev, vc4->hang_state);
+
+	vc4_bo_cache_destroy(dev);
 }