Skip to content

Commit a39d7ef

Browse files
ickledanvet
authored andcommitted
drm/i915: Remove i915_gem_evict_inactive()
This was only used by one external caller who would just be as happy with evict-everything, so perform the replacement and make the function private. In the process we note that unbinding the inactive list should not fail, and make it a warning instead. Signed-off-by: Chris Wilson <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
1 parent 8325a09 commit a39d7ef

File tree

3 files changed

+9
-26
lines changed

3 files changed

+9
-26
lines changed

drivers/gpu/drm/i915/i915_drv.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1370,10 +1370,7 @@ void i915_gem_init_global_gtt(struct drm_device *dev,
13701370
/* i915_gem_evict.c */
13711371
int __must_check i915_gem_evict_something(struct drm_device *dev, int min_size,
13721372
unsigned alignment, bool mappable);
1373-
int __must_check i915_gem_evict_everything(struct drm_device *dev,
1374-
bool purgeable_only);
1375-
int __must_check i915_gem_evict_inactive(struct drm_device *dev,
1376-
bool purgeable_only);
1373+
int i915_gem_evict_everything(struct drm_device *dev, bool purgeable_only);
13771374

13781375
/* i915_gem_tiling.c */
13791376
void i915_gem_detect_bit_6_swizzle(struct drm_device *dev);

drivers/gpu/drm/i915/i915_gem.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3455,13 +3455,8 @@ i915_gem_idle(struct drm_device *dev)
34553455
}
34563456

34573457
/* Under UMS, be paranoid and evict. */
3458-
if (!drm_core_check_feature(dev, DRIVER_MODESET)) {
3459-
ret = i915_gem_evict_inactive(dev, false);
3460-
if (ret) {
3461-
mutex_unlock(&dev->struct_mutex);
3462-
return ret;
3463-
}
3464-
}
3458+
if (!drm_core_check_feature(dev, DRIVER_MODESET))
3459+
i915_gem_evict_everything(dev, false);
34653460

34663461
i915_gem_reset_fences(dev);
34673462

drivers/gpu/drm/i915/i915_gem_evict.c

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,9 @@ int
166166
i915_gem_evict_everything(struct drm_device *dev, bool purgeable_only)
167167
{
168168
drm_i915_private_t *dev_priv = dev->dev_private;
169-
int ret;
169+
struct drm_i915_gem_object *obj, *next;
170170
bool lists_empty;
171+
int ret;
171172

172173
lists_empty = (list_empty(&dev_priv->mm.inactive_list) &&
173174
list_empty(&dev_priv->mm.flushing_list) &&
@@ -184,24 +185,14 @@ i915_gem_evict_everything(struct drm_device *dev, bool purgeable_only)
184185

185186
BUG_ON(!list_empty(&dev_priv->mm.flushing_list));
186187

187-
return i915_gem_evict_inactive(dev, purgeable_only);
188-
}
189-
190-
/** Unbinds all inactive objects. */
191-
int
192-
i915_gem_evict_inactive(struct drm_device *dev, bool purgeable_only)
193-
{
194-
drm_i915_private_t *dev_priv = dev->dev_private;
195-
struct drm_i915_gem_object *obj, *next;
196-
188+
/* Having flushed everything, unbind() should never raise an error */
197189
list_for_each_entry_safe(obj, next,
198190
&dev_priv->mm.inactive_list, mm_list) {
199191
if (!purgeable_only || obj->madv != I915_MADV_WILLNEED) {
200-
int ret = i915_gem_object_unbind(obj);
201-
if (ret)
202-
return ret;
192+
if (obj->pin_count == 0)
193+
WARN_ON(i915_gem_object_unbind(obj));
203194
}
204195
}
205196

206-
return 0;
197+
return ret;
207198
}

0 commit comments

Comments
 (0)