All of lore.kernel.org
 help / color / mirror / Atom feed
* [mlankhorst:locking-rework 31/31] drivers/gpu/drm/i915/gem/i915_gem_userptr.c:242:22: error: no member named 'lock' in 'struct drm_i915_gem_object::(anonymous at drivers/gpu/drm/i915/gem/i915_gem_object_types.h:196:2)'
@ 2020-08-06 14:46 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-08-06 14:46 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 36660 bytes --]

tree:   git://people.freedesktop.org/~mlankhorst/linux locking-rework
head:   e4824ec03388895de61fbd106cfba7c6f5602ff6
commit: e4824ec03388895de61fbd106cfba7c6f5602ff6 [31/31] remove obj->mm.lock
config: x86_64-randconfig-a015-20200806 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 076b120bebfd727b502208601012a44ab2e1028e)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        git checkout e4824ec03388895de61fbd106cfba7c6f5602ff6
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

>> drivers/gpu/drm/i915/gem/i915_gem_userptr.c:242:22: error: no member named 'lock' in 'struct drm_i915_gem_object::(anonymous at drivers/gpu/drm/i915/gem/i915_gem_object_types.h:196:2)'
           mutex_lock(&obj->mm.lock);
                       ~~~~~~~ ^
   drivers/gpu/drm/i915/gem/i915_gem_userptr.c:249:24: error: no member named 'lock' in 'struct drm_i915_gem_object::(anonymous at drivers/gpu/drm/i915/gem/i915_gem_object_types.h:196:2)'
           mutex_unlock(&obj->mm.lock);
                         ~~~~~~~ ^
>> drivers/gpu/drm/i915/gem/i915_gem_userptr.c:441:6: warning: shift count >= width of type [-Wshift-count-overflow]
           if (overflows_type(args->user_size, obj->base.size))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_utils.h:125:32: note: expanded from macro 'overflows_type'
           (sizeof(x) > sizeof(T) && (x) >> BITS_PER_TYPE(T))
                                         ^  ~~~~~~~~~~~~~~~~
   1 warning and 2 errors generated.

vim +242 drivers/gpu/drm/i915/gem/i915_gem_userptr.c

5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  229  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  230  int i915_gem_object_userptr_submit_begin(struct drm_i915_gem_object *obj)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  231  {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  232  	struct sg_table *pages;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  233  	int err;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  234  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  235  	err = i915_gem_object_unbind(obj, I915_GEM_OBJECT_UNBIND_ACTIVE);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  236  	if (err)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  237  		return err;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  238  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  239  	if (GEM_WARN_ON(i915_gem_object_has_pinned_pages(obj)))
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  240  		return -EBUSY;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  241  
cd91d7dd25dd383 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-08-05 @242  	mutex_lock(&obj->mm.lock);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  243  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  244  	pages = __i915_gem_object_unset_pages(obj);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  245  	if (!IS_ERR_OR_NULL(pages))
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  246  		i915_gem_userptr_put_pages(obj, pages);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  247  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  248  	err = ____i915_gem_object_get_pages(obj);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  249  	mutex_unlock(&obj->mm.lock);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  250  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  251  	return err;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  252  }
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  253  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  254  int i915_gem_object_userptr_submit_init(struct drm_i915_gem_object *obj)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  255  {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  256  	struct drm_i915_private *i915 = to_i915(obj->base.dev);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  257  	const unsigned long num_pages = obj->base.size >> PAGE_SHIFT;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  258  	struct page **pvec;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  259  	unsigned int gup_flags = 0;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  260  	unsigned long notifier_seq;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  261  	int pinned, ret;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  262  	bool reffed = false;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  263  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  264  	if (obj->userptr.notifier.mm)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  265  		notifier_seq = mmu_interval_read_begin(&obj->userptr.notifier);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  266  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  267  	if (obj->userptr.notifier.mm && obj->userptr.notifier.mm != current->mm)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  268  		return -EFAULT;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  269  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  270  	pvec = kvmalloc_array(num_pages, sizeof(struct page *), GFP_KERNEL);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  271  	if (!pvec)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  272  		return -ENOMEM;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  273  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  274  	/*
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  275  	 * Using __get_user_pages_fast() with a read-only
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  276  	 * access is questionable. A read-only page may be
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  277  	 * COW-broken, and then this might end up giving
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  278  	 * the wrong side of the COW..
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  279  	 *
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  280  	 * We may or may not care.
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  281  	 */
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  282  	if (!i915_gem_object_is_readonly(obj))
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  283  		gup_flags |= FOLL_WRITE;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  284  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  285  	pinned = ret = 0;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  286  	while (pinned < num_pages) {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  287  		ret = pin_user_pages_fast(obj->userptr.ptr + pinned * PAGE_SIZE,
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  288  					  num_pages - pinned, gup_flags,
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  289  					  &pvec[pinned]);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  290  		if (ret < 0)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  291  			break;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  292  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  293  		pinned += ret;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  294  	}
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  295  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  296  	if (ret >= 0) {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  297  		ret = 0;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  298  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  299  		mutex_lock(&i915->mm.notifier_lock);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  300  		if (!obj->userptr.page_ref++) {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  301  			obj->userptr.pvec = pvec;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  302  			obj->userptr.notifier_seq = notifier_seq;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  303  			reffed = true;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  304  		}
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  305  		mutex_unlock(&i915->mm.notifier_lock);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  306  	}
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  307  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  308  	if (!reffed) {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  309  		unpin_user_pages(pvec, pinned);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  310  		kvfree(pvec);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  311  	}
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  312  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  313  	return ret;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  314  }
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  315  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  316  int i915_gem_object_userptr_submit_done(struct drm_i915_gem_object *obj)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  317  {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  318  	if (obj->userptr.notifier.mm &&
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  319  	    mmu_interval_read_retry(&obj->userptr.notifier,
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  320  				    obj->userptr.notifier_seq)) {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  321  		/* We collided with the mmu notifier, need to retry */
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  322  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  323  		return -EAGAIN;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  324  	}
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  325  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  326  	return 0;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  327  }
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  328  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  329  void i915_gem_object_userptr_submit_fini(struct drm_i915_gem_object *obj)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  330  {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  331  	i915_gem_object_userptr_drop_ref(obj);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  332  }
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  333  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  334  static void
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  335  i915_gem_userptr_release(struct drm_i915_gem_object *obj)
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  336  {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  337  	if (!obj->userptr.notifier.mm)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  338  		return;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  339  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  340  	mmu_interval_notifier_remove(&obj->userptr.notifier);
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  341  	obj->userptr.notifier.mm = NULL;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  342  }
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  343  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  344  static int
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  345  i915_gem_userptr_dmabuf_export(struct drm_i915_gem_object *obj)
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  346  {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  347  	/* Needs to be created with an interval notifier */
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  348  	if (!obj->userptr.notifier.mm)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  349  		return -EPERM;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  350  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  351  	return 0;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  352  }
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  353  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  354  const struct drm_i915_gem_object_ops i915_gem_userptr_ops = {
7d192daa73d9f37 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Chris Wilson       2020-05-29  355  	.name = "i915_gem_object_userptr",
3599a91cc8d0754 drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-11-01  356  	.flags = I915_GEM_OBJECT_HAS_STRUCT_PAGE |
484d9a844d0d0ae drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2019-01-15  357  		 I915_GEM_OBJECT_IS_SHRINKABLE |
f6c26b555e14fb2 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Janusz Krzysztofik 2020-02-04  358  		 I915_GEM_OBJECT_NO_MMAP |
484d9a844d0d0ae drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2019-01-15  359  		 I915_GEM_OBJECT_ASYNC_CANCEL,
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  360  	.get_pages = i915_gem_userptr_get_pages,
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  361  	.put_pages = i915_gem_userptr_put_pages,
de4726649b6b1d7 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2016-01-22  362  	.dmabuf_export = i915_gem_userptr_dmabuf_export,
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  363  	.release = i915_gem_userptr_release,
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  364  };
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  365  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  366  #endif
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  367  
a5a5ae2abe3ba77 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-02-08  368  /*
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  369   * Creates a new mm object that wraps some normal memory from the process
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  370   * context - user memory.
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  371   *
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  372   * We impose several restrictions upon the memory being mapped
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  373   * into the GPU.
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  374   * 1. It must be page aligned (both start/end addresses, i.e ptr and size).
ec8b0dd51c50e33 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-07-21  375   * 2. It must be normal system memory, not a pointer into another map of IO
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  376   *    space (e.g. it must not be a GTT mmapping of another object).
ec8b0dd51c50e33 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-07-21  377   * 3. We only allow a bo as large as we could in theory map into the GTT,
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  378   *    that is we limit the size to the total size of the GTT.
ec8b0dd51c50e33 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-07-21  379   * 4. The bo is marked as being snoopable. The backing pages are left
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  380   *    accessible directly by the CPU, but reads and writes by the GPU may
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  381   *    incur the cost of a snoop (unless you have an LLC architecture).
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  382   *
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  383   * Synchronisation between multiple users and the GPU is left to userspace
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  384   * through the normal set-domain-ioctl. The kernel will enforce that the
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  385   * GPU relinquishes the VMA before it is returned back to the system
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  386   * i.e. upon free(), munmap() or process termination. However, the userspace
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  387   * malloc() library may not immediately relinquish the VMA after free() and
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  388   * instead reuse it whilst the GPU is still reading and writing to the VMA.
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  389   * Caveat emptor.
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  390   *
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  391   * Also note, that the object created here is not currently a "first class"
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  392   * object, in that several ioctls are banned. These are the CPU access
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  393   * ioctls: mmap(), pwrite and pread. In practice, you are expected to use
cc917ab43541db3 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2015-10-13  394   * direct access via your pointer rather than use those ioctls. Another
cc917ab43541db3 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2015-10-13  395   * restriction is that we do not allow userptr surfaces to be pinned to the
cc917ab43541db3 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2015-10-13  396   * hardware and so we reject any attempt to create a framebuffer out of a
cc917ab43541db3 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2015-10-13  397   * userptr.
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  398   *
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  399   * If you think this is a good interface to use to pass GPU memory between
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  400   * drivers, please use dma-buf instead. In fact, wherever possible use
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  401   * dma-buf instead.
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  402   */
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  403  int
a5a5ae2abe3ba77 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-02-08  404  i915_gem_userptr_ioctl(struct drm_device *dev,
a5a5ae2abe3ba77 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-02-08  405  		       void *data,
a5a5ae2abe3ba77 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-02-08  406  		       struct drm_file *file)
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  407  {
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  408  #ifdef CONFIG_MMU_NOTIFIER
7867d709959927e drivers/gpu/drm/i915/gem/i915_gem_userptr.c Chris Wilson       2019-10-22  409  	static struct lock_class_key lock_class;
0031fb96859caad drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-11-04  410  	struct drm_i915_private *dev_priv = to_i915(dev);
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  411  	struct drm_i915_gem_userptr *args = data;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  412  	struct drm_i915_gem_object *obj;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  413  	int ret;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  414  	u32 handle;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  415  
0031fb96859caad drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-11-04  416  	if (!HAS_LLC(dev_priv) && !HAS_SNOOP(dev_priv)) {
ca377809d657ea3 drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-03-02  417  		/* We cannot support coherent userptr objects on hw without
ca377809d657ea3 drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-03-02  418  		 * LLC and broken snooping.
ca377809d657ea3 drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-03-02  419  		 */
ca377809d657ea3 drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-03-02  420  		return -ENODEV;
ca377809d657ea3 drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-03-02  421  	}
ca377809d657ea3 drivers/gpu/drm/i915/i915_gem_userptr.c     Tvrtko Ursulin     2016-03-02  422  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  423  	if (args->flags & ~(I915_USERPTR_READ_ONLY |
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  424  			    I915_USERPTR_UNSYNCHRONIZED))
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  425  		return -EINVAL;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  426  
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  427  	/*
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  428  	 * XXX: There is a prevalence of the assumption that we fit the
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  429  	 * object's page count inside a 32bit _signed_ variable. Let's document
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  430  	 * this and catch if we ever need to fix it. In the meantime, if you do
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  431  	 * spot such a local variable, please consider fixing!
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  432  	 *
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  433  	 * Aside from our own locals (for which we have no excuse!):
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  434  	 * - sg_table embeds unsigned int for num_pages
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  435  	 * - get_user_pages*() mixed ints with longs
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  436  	 */
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  437  
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  438  	if (args->user_size >> PAGE_SHIFT > INT_MAX)
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  439  		return -E2BIG;
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  440  
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17 @441  	if (overflows_type(args->user_size, obj->base.size))
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  442  		return -E2BIG;
24860ad748688b1 drivers/gpu/drm/i915/gem/i915_gem_userptr.c Matthew Auld       2020-01-17  443  
c11c7bfd2134957 drivers/gpu/drm/i915/i915_gem_userptr.c     Matthew Auld       2018-05-02  444  	if (!args->user_size)
c11c7bfd2134957 drivers/gpu/drm/i915/i915_gem_userptr.c     Matthew Auld       2018-05-02  445  		return -EINVAL;
c11c7bfd2134957 drivers/gpu/drm/i915/i915_gem_userptr.c     Matthew Auld       2018-05-02  446  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  447  	if (offset_in_page(args->user_ptr | args->user_size))
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  448  		return -EINVAL;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  449  
96d4f267e40f950 drivers/gpu/drm/i915/i915_gem_userptr.c     Linus Torvalds     2019-01-03  450  	if (!access_ok((char __user *)(unsigned long)args->user_ptr, args->user_size))
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  451  		return -EFAULT;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  452  
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  453  	/* Require mmu notifier now */
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  454  	if (args->flags & I915_USERPTR_UNSYNCHRONIZED)
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  455  		return -ENODEV;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  456  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  457  	if (args->flags & I915_USERPTR_READ_ONLY) {
0b100760e3e8cbb drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-07-12  458  		/*
0b100760e3e8cbb drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-07-12  459  		 * On almost all of the older hw, we cannot tell the GPU that
0b100760e3e8cbb drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-07-12  460  		 * a page is readonly.
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  461  		 */
e6ba76480299a0d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Chris Wilson       2019-12-21  462  		if (!dev_priv->gt.vm->has_read_only)
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  463  			return -ENODEV;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  464  	}
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  465  
13f1bfd3b3329b1 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2019-02-28  466  	obj = i915_gem_object_alloc();
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  467  	if (obj == NULL)
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  468  		return -ENOMEM;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  469  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  470  	drm_gem_private_object_init(dev, &obj->base, args->user_size);
7867d709959927e drivers/gpu/drm/i915/gem/i915_gem_userptr.c Chris Wilson       2019-10-22  471  	i915_gem_object_init(obj, &i915_gem_userptr_ops, &lock_class);
c0a51fd07b1dd50 drivers/gpu/drm/i915/i915_gem_userptr.c     Christian König    2018-02-16  472  	obj->read_domains = I915_GEM_DOMAIN_CPU;
c0a51fd07b1dd50 drivers/gpu/drm/i915/i915_gem_userptr.c     Christian König    2018-02-16  473  	obj->write_domain = I915_GEM_DOMAIN_CPU;
b8f55be64453ea7 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2017-08-11  474  	i915_gem_object_set_cache_coherency(obj, I915_CACHE_LLC);
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  475  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  476  	obj->userptr.ptr = args->user_ptr;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  477  	obj->userptr.notifier_seq = ULONG_MAX;
0b100760e3e8cbb drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-07-12  478  	if (args->flags & I915_USERPTR_READ_ONLY)
0b100760e3e8cbb drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2018-07-12  479  		i915_gem_object_set_readonly(obj);
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  480  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  481  	/* And keep a pointer to the current->mm for resolving the user pages
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  482  	 * at binding. This means that we need to hook into the mmu_notifier
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  483  	 * in order to detect if the mmu is destroyed.
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  484  	 */
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  485  	ret = i915_gem_userptr_init__mmu_notifier(obj, args->flags);
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  486  	if (ret == 0)
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  487  		ret = drm_gem_handle_create(file, &obj->base, &handle);
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  488  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  489  	/* drop reference from allocate - handle holds it now */
f0cd518206e1a47 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2016-10-28  490  	i915_gem_object_put(obj);
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  491  	if (ret)
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  492  		return ret;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  493  
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  494  	args->handle = handle;
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  495  	return 0;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  496  #else
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  497  	return -ENODEV;
71d98df6e1a246d drivers/gpu/drm/i915/gem/i915_gem_userptr.c Maarten Lankhorst  2020-07-10  498  #endif
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  499  }
5cc9ed4b9a7ac57 drivers/gpu/drm/i915/i915_gem_userptr.c     Chris Wilson       2014-05-16  500  

:::::: The code at line 242 was first introduced by commit
:::::: cd91d7dd25dd3836e74489cd21c16336c3cd016c drm/i915: Flatten obj->mm.lock

:::::: TO: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
:::::: CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 33794 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-08-06 14:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-06 14:46 [mlankhorst:locking-rework 31/31] drivers/gpu/drm/i915/gem/i915_gem_userptr.c:242:22: error: no member named 'lock' in 'struct drm_i915_gem_object::(anonymous at drivers/gpu/drm/i915/gem/i915_gem_object_types.h:196:2)' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.