Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/bochs: Don't grab dev->struct_mutex for 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).

Reviewed-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

+4 -12
+4 -12
drivers/gpu/drm/bochs/bochs_mm.c
··· 454 454 uint32_t handle, uint64_t *offset) 455 455 { 456 456 struct drm_gem_object *obj; 457 - int ret; 458 457 struct bochs_bo *bo; 459 458 460 - mutex_lock(&dev->struct_mutex); 461 459 obj = drm_gem_object_lookup(dev, file, handle); 462 - if (obj == NULL) { 463 - ret = -ENOENT; 464 - goto out_unlock; 465 - } 460 + if (obj == NULL) 461 + return -ENOENT; 466 462 467 463 bo = gem_to_bochs_bo(obj); 468 464 *offset = bochs_bo_mmap_offset(bo); 469 465 470 - drm_gem_object_unreference(obj); 471 - ret = 0; 472 - out_unlock: 473 - mutex_unlock(&dev->struct_mutex); 474 - return ret; 475 - 466 + drm_gem_object_unreference_unlocked(obj); 467 + return 0; 476 468 } 477 469 478 470 /* ---------------------------------------------------------------------- */