From: Christian König <christian.koenig@amd.com>
Date: Mon, 5 Aug 2013 12:10:56 +0000 (+0200)
Subject: drm/radeon: stop sending invalid UVD destroy msg
X-Git-Tag: firefly_0821_release~6453^2~1087
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ce512e58aa200513472a438e72a0fbe2bcaf8524;p=firefly-linux-kernel-4.4.55.git

drm/radeon: stop sending invalid UVD destroy msg

commit 641a00593f7d07eab778fbabf546fb68fff3d5ce upstream.

We also need to check the handle.

Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---

diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
index 1b3a91bf1a9d..e052ff9f9472 100644
--- a/drivers/gpu/drm/radeon/radeon_uvd.c
+++ b/drivers/gpu/drm/radeon/radeon_uvd.c
@@ -218,8 +218,8 @@ void radeon_uvd_free_handles(struct radeon_device *rdev, struct drm_file *filp)
 {
 	int i, r;
 	for (i = 0; i < RADEON_MAX_UVD_HANDLES; ++i) {
-		if (rdev->uvd.filp[i] == filp) {
-			uint32_t handle = atomic_read(&rdev->uvd.handles[i]);
+		uint32_t handle = atomic_read(&rdev->uvd.handles[i]);
+		if (handle != 0 && rdev->uvd.filp[i] == filp) {
 			struct radeon_fence *fence;
 
 			r = radeon_uvd_get_destroy_msg(rdev,