@@ -268,7 +268,7 @@ static void __i915_gem_object_free_mmaps(struct drm_i915_gem_object *obj)
268
268
*/
269
269
void __i915_gem_object_pages_fini (struct drm_i915_gem_object * obj )
270
270
{
271
- assert_object_held (obj );
271
+ assert_object_held_shared (obj );
272
272
273
273
if (!list_empty (& obj -> vma .list )) {
274
274
struct i915_vma * vma ;
@@ -331,15 +331,7 @@ static void __i915_gem_free_objects(struct drm_i915_private *i915,
331
331
continue ;
332
332
}
333
333
334
- if (!i915_gem_object_trylock (obj , NULL )) {
335
- /* busy, toss it back to the pile */
336
- if (llist_add (& obj -> freed , & i915 -> mm .free_list ))
337
- queue_delayed_work (i915 -> wq , & i915 -> mm .free_work , msecs_to_jiffies (10 ));
338
- continue ;
339
- }
340
-
341
334
__i915_gem_object_pages_fini (obj );
342
- i915_gem_object_unlock (obj );
343
335
__i915_gem_free_object (obj );
344
336
345
337
/* But keep the pointer alive for RCU-protected lookups */
@@ -359,7 +351,7 @@ void i915_gem_flush_free_objects(struct drm_i915_private *i915)
359
351
static void __i915_gem_free_work (struct work_struct * work )
360
352
{
361
353
struct drm_i915_private * i915 =
362
- container_of (work , struct drm_i915_private , mm .free_work . work );
354
+ container_of (work , struct drm_i915_private , mm .free_work );
363
355
364
356
i915_gem_flush_free_objects (i915 );
365
357
}
@@ -391,7 +383,7 @@ static void i915_gem_free_object(struct drm_gem_object *gem_obj)
391
383
*/
392
384
393
385
if (llist_add (& obj -> freed , & i915 -> mm .free_list ))
394
- queue_delayed_work (i915 -> wq , & i915 -> mm .free_work , 0 );
386
+ queue_work (i915 -> wq , & i915 -> mm .free_work );
395
387
}
396
388
397
389
void __i915_gem_object_flush_frontbuffer (struct drm_i915_gem_object * obj ,
@@ -745,7 +737,7 @@ bool i915_gem_object_needs_ccs_pages(struct drm_i915_gem_object *obj)
745
737
746
738
void i915_gem_init__objects (struct drm_i915_private * i915 )
747
739
{
748
- INIT_DELAYED_WORK (& i915 -> mm .free_work , __i915_gem_free_work );
740
+ INIT_WORK (& i915 -> mm .free_work , __i915_gem_free_work );
749
741
}
750
742
751
743
void i915_objects_module_exit (void )
0 commit comments