forked from Minki/linux
drm/i915: Optimise VMA lookup slightly
Cast VM pointers before substraction to save the compiler doing a smart one which includes multiplication. v2: Only keep the first optimisation and prettify it. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/1481639847-9214-1-git-send-email-tvrtko.ursulin@linux.intel.com
This commit is contained in:
parent
2ee7dc497e
commit
2bf0d26706
@ -178,15 +178,23 @@ static inline void i915_vma_put(struct i915_vma *vma)
|
||||
i915_gem_object_put(vma->obj);
|
||||
}
|
||||
|
||||
static __always_inline ptrdiff_t ptrdiff(const void *a, const void *b)
|
||||
{
|
||||
return a - b;
|
||||
}
|
||||
|
||||
static inline long
|
||||
i915_vma_compare(struct i915_vma *vma,
|
||||
struct i915_address_space *vm,
|
||||
const struct i915_ggtt_view *view)
|
||||
{
|
||||
ptrdiff_t cmp;
|
||||
|
||||
GEM_BUG_ON(view && !i915_is_ggtt(vm));
|
||||
|
||||
if (vma->vm != vm)
|
||||
return vma->vm - vm;
|
||||
cmp = ptrdiff(vma->vm, vm);
|
||||
if (cmp)
|
||||
return cmp;
|
||||
|
||||
if (!view)
|
||||
return vma->ggtt_view.type;
|
||||
|
Loading…
Reference in New Issue
Block a user