|
@@ -181,7 +181,9 @@ static void radeon_set_filp_rights(struct drm_device *dev,
|
|
|
struct drm_file *applier,
|
|
|
uint32_t *value)
|
|
|
{
|
|
|
- mutex_lock(&dev->struct_mutex);
|
|
|
+ struct radeon_device *rdev = dev->dev_private;
|
|
|
+
|
|
|
+ mutex_lock(&rdev->gem.mutex);
|
|
|
if (*value == 1) {
|
|
|
/* wants rights */
|
|
|
if (!*owner)
|
|
@@ -192,7 +194,7 @@ static void radeon_set_filp_rights(struct drm_device *dev,
|
|
|
*owner = NULL;
|
|
|
}
|
|
|
*value = *owner == applier ? 1 : 0;
|
|
|
- mutex_unlock(&dev->struct_mutex);
|
|
|
+ mutex_unlock(&rdev->gem.mutex);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -724,10 +726,14 @@ void radeon_driver_preclose_kms(struct drm_device *dev,
|
|
|
struct drm_file *file_priv)
|
|
|
{
|
|
|
struct radeon_device *rdev = dev->dev_private;
|
|
|
+
|
|
|
+ mutex_lock(&rdev->gem.mutex);
|
|
|
if (rdev->hyperz_filp == file_priv)
|
|
|
rdev->hyperz_filp = NULL;
|
|
|
if (rdev->cmask_filp == file_priv)
|
|
|
rdev->cmask_filp = NULL;
|
|
|
+ mutex_unlock(&rdev->gem.mutex);
|
|
|
+
|
|
|
radeon_uvd_free_handles(rdev, file_priv);
|
|
|
radeon_vce_free_handles(rdev, file_priv);
|
|
|
}
|