⬢ DragonFlyBSD Kernel Audit
DF-4460 / run.log
← back to finding ↓ download raw
+ F=sys/dev/drm/drm_gem.c
+ sed -n 576,588p sys/dev/drm/drm_gem.c
	obj->map_list.key = alloc_unr(mm->idxunr);
	ret = drm_ht_insert_item(&mm->offset_hash, &obj->map_list);
	if (ret != 0) {
		DRM_ERROR("failed to add to map hash\n");
		free_unr(mm->idxunr, obj->map_list.key);
		return (ret);
	}
	obj->on_map = true;

	return drm_vma_offset_add(dev->vma_offset_manager, &obj->vma_node,
				  size / PAGE_SIZE);
}
EXPORT_SYMBOL(drm_gem_create_mmap_offset_size);
+ echo -- on_map=true precedes the vma_offset_add return value --
-- on_map=true precedes the vma_offset_add return value --
+ grep -n obj->on_map = true sys/dev/drm/drm_gem.c
583:	obj->on_map = true;
+ grep -n return drm_vma_offset_add sys/dev/drm/drm_gem.c
585:	return drm_vma_offset_add(dev->vma_offset_manager, &obj->vma_node,
+ echo -- retry path returns early on on_map, hiding the failed state --
-- retry path returns early on on_map, hiding the failed state --
+ grep -n if (obj->on_map) sys/dev/drm/drm_gem.c
573:	if (obj->on_map)
+ grep -n if (obj->on_map) sys/dev/drm/drm_gem.c
+ head -1
+ cut -d: -f1
+ sed -n 573,+2p sys/dev/drm/drm_gem.c
	if (obj->on_map)
		return (0);
 
+ echo -- cleanup only happens at object release (drm_gem_free_mmap_offset) --
-- cleanup only happens at object release (drm_gem_free_mmap_offset) --
+ grep -n obj->on_map = false sys/dev/drm/drm_gem.c
543:	obj->on_map = false;