Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d849c82f authored by Daniel Vetter's avatar Daniel Vetter Committed by Thierry Reding
Browse files

drm/tegra: Don't take dev->struct_mutex in mmap offset ioctl



Since David Herrmann's mmap vma manager rework we don't need to grab
dev->struct_mutex any more to prevent races when looking up the mmap
offset. Drop it and instead don't forget to use the unref_unlocked
variant (since the drm core still cares).

v2: Finally get rid of the copypasta from another commit in this
commit message. And convert to _unlocked like we need to (Patrik).

Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Acked-by: default avatarThierry Reding <thierry.reding@gmail.com>
Reviewed-by: default avatarPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 11533304
Loading
Loading
Loading
Loading
+1 −6
Original line number Original line Diff line number Diff line
@@ -408,12 +408,9 @@ int tegra_bo_dumb_map_offset(struct drm_file *file, struct drm_device *drm,
	struct drm_gem_object *gem;
	struct drm_gem_object *gem;
	struct tegra_bo *bo;
	struct tegra_bo *bo;


	mutex_lock(&drm->struct_mutex);

	gem = drm_gem_object_lookup(drm, file, handle);
	gem = drm_gem_object_lookup(drm, file, handle);
	if (!gem) {
	if (!gem) {
		dev_err(drm->dev, "failed to lookup GEM object\n");
		dev_err(drm->dev, "failed to lookup GEM object\n");
		mutex_unlock(&drm->struct_mutex);
		return -EINVAL;
		return -EINVAL;
	}
	}


@@ -421,9 +418,7 @@ int tegra_bo_dumb_map_offset(struct drm_file *file, struct drm_device *drm,


	*offset = drm_vma_node_offset_addr(&bo->gem.vma_node);
	*offset = drm_vma_node_offset_addr(&bo->gem.vma_node);


	drm_gem_object_unreference(gem);
	drm_gem_object_unreference_unlocked(gem);

	mutex_unlock(&drm->struct_mutex);


	return 0;
	return 0;
}
}