• Ville Syrjälä's avatar
    drm/i915: Unpin last_context at reset · 4bfad3dd
    Ville Syrjälä authored
    We're forgetting to unpin the last_context from the ggtt at GPU reset
    time. This leads to the vma pin_count leaking at every reset if the
    last context wasn't the ring default context. Further use of the same
    context will trigger the pin_count check in i915_gem_object_pin() and
    userspace will be faced with EBUSY as a result.
    
    This plaques kms_flip rather badly since it performs lots of resets,
    and every fd has its own default context these days.
    
    Fix the problem by properly unpinning the last context at reset.
    
    This regression seems to back to
    
    commit acce9ffa
    Author: Ben Widawsky <ben@bwidawsk.net>
    Date:   Fri Dec 6 14:11:03 2013 -0800
    
       drm/i915: Better reset handling for contexts
    
    Testcase: igt/gem_ctx_exec/reset-pin-leak
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    4bfad3dd
i915_gem_context.c 23.4 KB