drm/i915/evict: watch out for unevictable nodes
In an address space there can be sprinkling of I915_COLOR_UNEVICTABLE nodes, which lack a parent vma. For platforms with cache coloring we might be very unlucky and abut with such a node thinking we can simply unbind the vma. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20200408170456.399604-1-matthew.auld@intel.com
This commit is contained in:
Родитель
fbaa1229d3
Коммит
53dd7028dc
|
@ -228,7 +228,12 @@ found:
|
|||
|
||||
while (ret == 0 && (node = drm_mm_scan_color_evict(&scan))) {
|
||||
vma = container_of(node, struct i915_vma, node);
|
||||
ret = __i915_vma_unbind(vma);
|
||||
|
||||
/* If we find any non-objects (!vma), we cannot evict them */
|
||||
if (vma->node.color != I915_COLOR_UNEVICTABLE)
|
||||
ret = __i915_vma_unbind(vma);
|
||||
else
|
||||
ret = -ENOSPC; /* XXX search failed, try again? */
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
Загрузка…
Ссылка в новой задаче