lkml.org 
[lkml]   [2013]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subjectlinux-next: manual merge of the drm-intel tree with Linus' tree
    Hi all,

    Today's linux-next merge of the drm-intel tree got a conflict in
    drivers/gpu/drm/i915/i915_gem.c between commit 7dc19d5affd7 ("drivers:
    convert shrinkers to new count/scan API") from the tree and commit
    e656a6cba0fe ("drm/i915: inline vma_create into lookup_or_create_vma")
    from the drm-intel tree.

    I fixed it up (see below) and can carry the fix as necessary (no action
    is required).

    --
    Cheers,
    Stephen Rothwell sfr@canb.auug.org.au

    diff --cc drivers/gpu/drm/i915/i915_gem.c
    index df9253d,d00d24f..0000000
    --- a/drivers/gpu/drm/i915/i915_gem.c
    +++ b/drivers/gpu/drm/i915/i915_gem.c
    @@@ -4886,61 -4912,3 +4940,37 @@@ unsigned long i915_gem_obj_size(struct

    return 0;
    }
    +
    +static unsigned long
    +i915_gem_inactive_scan(struct shrinker *shrinker, struct shrink_control *sc)
    +{
    + struct drm_i915_private *dev_priv =
    + container_of(shrinker,
    + struct drm_i915_private,
    + mm.inactive_shrinker);
    + struct drm_device *dev = dev_priv->dev;
    + int nr_to_scan = sc->nr_to_scan;
    + unsigned long freed;
    + bool unlock = true;
    +
    + if (!mutex_trylock(&dev->struct_mutex)) {
    + if (!mutex_is_locked_by(&dev->struct_mutex, current))
    + return 0;
    +
    + if (dev_priv->mm.shrinker_no_lock_stealing)
    + return 0;
    +
    + unlock = false;
    + }
    +
    + freed = i915_gem_purge(dev_priv, nr_to_scan);
    + if (freed < nr_to_scan)
    + freed += __i915_gem_shrink(dev_priv, nr_to_scan,
    + false);
    + if (freed < nr_to_scan)
    + freed += i915_gem_shrink_all(dev_priv);
    +
    + if (unlock)
    + mutex_unlock(&dev->struct_mutex);
    + return freed;
    +}
    - struct i915_vma *i915_gem_obj_to_vma(struct drm_i915_gem_object *obj,
    - struct i915_address_space *vm)
    - {
    - struct i915_vma *vma;
    - list_for_each_entry(vma, &obj->vma_list, vma_link)
    - if (vma->vm == vm)
    - return vma;
    - return NULL;
    - }
    - struct i915_vma *
    - i915_gem_obj_lookup_or_create_vma(struct drm_i915_gem_object *obj,
    - struct i915_address_space *vm)
    - {
    - struct i915_vma *vma;
    - vma = i915_gem_obj_to_vma(obj, vm);
    - if (!vma)
    - vma = i915_gem_vma_create(obj, vm);
    - return vma;
    - }
    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2013-09-18 03:41    [W:4.396 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site