• Chris Wilson's avatar
    drm/i915/gtt: Pull global wc page stash under its own locking · 63fd659f
    Chris Wilson authored
    Currently, the wc-stash used for providing flushed WC pages ready for
    constructing the page directories is assumed to be protected by the
    struct_mutex. However, we want to remove this global lock and so must
    install a replacement global lock for accessing the global wc-stash (the
    per-vm stash continues to be guarded by the vm).
    
    We need to push ahead on this patch due to an oversight in hastily
    removing the struct_mutex guard around the igt_ppgtt_alloc selftest. No
    matter, it will prove very useful (i.e. will be required) in the near
    future.
    
    v2: Restore the onstack stash so that we can drop the vm->mutex in
    future across the allocation.
    v3: Restore the lost pagevec_init of the onstack allocation, and repaint
    function names.
    v4: Reorder init so that we don't try and use i915_address_space before
    it is ininitialised.
    
    Fixes: 1f6f0023 ("drm/i915/selftests: Drop struct_mutex around lowlevel pggtt allocation")
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180704185518.4193-1-chris@chris-wilson.co.uk
    63fd659f
i915_drv.h 116 KB