• Nick Hoath's avatar
    drm/i915: Fix context/engine cleanup order · 1803c035
    Nick Hoath authored
    Swap the order of context & engine cleanup, so that contexts are cleaned
    up first, and *then* engines. This is a more sensible order anyway, but
    in particular has become necessary since the 'intel_ring_initialized()
    must be simple and inline' patch, which now uses ring->dev as an
    'initialised' flag, so it can now be NULL after engine teardown. This
    in turn can cause a problem in the context code, which (used to) check
    the ring->dev->struct_mutex -- causing a fault if ring->dev was NULL.
    
    Also rename the cleanup function to reflect what it actually does
    (cleanup engines, not a ringbuffer), and fix an annoying whitespace issue.
    
    v2: Also make the fix in i915_load_modeset_init, not just in
        i915_driver_unload (Chris Wilson)
    v3: Had extra stuff in it.
    v4: Reverted extra stuff (so we're back to v2).
        Rebased and updated commentary above (Dave Gordon).
    Signed-off-by: default avatarNick Hoath <nicholas.hoath@intel.com>
    Signed-off-by: default avatarDave Gordon <david.s.gordon@intel.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v2)
    Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Link: http://patchwork.freedesktop.org/patch/msgid/1453405067-32890-3-git-send-email-david.s.gordon@intel.comSigned-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    1803c035
i915_gem.c 136 KB