[PATCH v8] drm/lima: driver for ARM Mali4xx GPUs

kbuild test robot lkp at intel.com
Sun Mar 10 02:00:02 UTC 2019


Hi Qiang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.0 next-20190306]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Qiang-Yu/drm-lima-driver-for-ARM-Mali4xx-GPUs/20190310-073206
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 8.2.0-11) 8.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=8.2.0 make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   In file included from drivers/gpu/drm/lima/lima_gem.c:17:
   drivers/gpu/drm/lima/lima_object.h:31:18: warning: 'struct reservation_object' declared inside parameter list will not be visible outside of this definition or declaration
              struct reservation_object *resv);
                     ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_gem.c: In function 'lima_gem_sync_bo':
   drivers/gpu/drm/lima/lima_gem.c:138:9: error: implicit declaration of function 'reservation_object_reserve_shared' [-Werror=implicit-function-declaration]
      err = reservation_object_reserve_shared(bo->gem.resv, 1);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_gem.c:138:51: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
      err = reservation_object_reserve_shared(bo->gem.resv, 1);
                                                      ^~~~
                                                      dev
   drivers/gpu/drm/lima/lima_gem.c:153:9: error: implicit declaration of function 'reservation_object_get_fences_rcu' [-Werror=implicit-function-declaration]
      err = reservation_object_get_fences_rcu(
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_gem.c:154:12: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
       bo->gem.resv, NULL, &nr_fences, &fences);
               ^~~~
               dev
>> drivers/gpu/drm/lima/lima_gem.c:168:3: error: implicit declaration of function 'kfree'; did you mean 'vfree'? [-Werror=implicit-function-declaration]
      kfree(fences);
      ^~~~~
      vfree
   drivers/gpu/drm/lima/lima_gem.c:172:11: error: implicit declaration of function 'reservation_object_get_excl_rcu' [-Werror=implicit-function-declaration]
      fence = reservation_object_get_excl_rcu(bo->gem.resv);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_gem.c:172:51: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
      fence = reservation_object_get_excl_rcu(bo->gem.resv);
                                                      ^~~~
                                                      dev
   drivers/gpu/drm/lima/lima_gem.c: In function 'lima_gem_lock_bos':
   drivers/gpu/drm/lima/lima_gem.c:188:24: error: 'reservation_ww_class' undeclared (first use in this function)
     ww_acquire_init(ctx, &reservation_ww_class);
                           ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_gem.c:188:24: note: each undeclared identifier is reported only once for each function it appears in
   drivers/gpu/drm/lima/lima_gem.c:197:50: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
      ret = ww_mutex_lock_interruptible(&bos[i]->gem.resv->lock, ctx);
                                                     ^~~~
                                                     dev
   drivers/gpu/drm/lima/lima_gem.c:209:32: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
      ww_mutex_unlock(&bos[i]->gem.resv->lock);
                                   ^~~~
                                   dev
   drivers/gpu/drm/lima/lima_gem.c:212:42: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
      ww_mutex_unlock(&bos[slow_locked]->gem.resv->lock);
                                             ^~~~
                                             dev
   drivers/gpu/drm/lima/lima_gem.c:217:25: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
       &bos[contended]->gem.resv->lock, ctx);
                            ^~~~
                            dev
   drivers/gpu/drm/lima/lima_gem.c: In function 'lima_gem_unlock_bos':
   drivers/gpu/drm/lima/lima_gem.c:234:32: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
      ww_mutex_unlock(&bos[i]->gem.resv->lock);
                                   ^~~~
                                   dev
   drivers/gpu/drm/lima/lima_gem.c: In function 'lima_gem_submit':
   drivers/gpu/drm/lima/lima_gem.c:331:4: error: implicit declaration of function 'reservation_object_add_excl_fence' [-Werror=implicit-function-declaration]
       reservation_object_add_excl_fence(bos[i]->gem.resv, fence);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_gem.c:331:50: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
       reservation_object_add_excl_fence(bos[i]->gem.resv, fence);
                                                     ^~~~
                                                     dev
   drivers/gpu/drm/lima/lima_gem.c:333:4: error: implicit declaration of function 'reservation_object_add_shared_fence' [-Werror=implicit-function-declaration]
       reservation_object_add_shared_fence(bos[i]->gem.resv, fence);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_gem.c:333:52: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
       reservation_object_add_shared_fence(bos[i]->gem.resv, fence);
                                                       ^~~~
                                                       dev
   drivers/gpu/drm/lima/lima_gem.c: In function 'lima_gem_wait':
   drivers/gpu/drm/lima/lima_gem.c:374:12: error: implicit declaration of function 'drm_timeout_abs_to_jiffies'; did you mean 'timeval_to_jiffies'? [-Werror=implicit-function-declaration]
     timeout = drm_timeout_abs_to_jiffies(timeout_ns);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
               timeval_to_jiffies
   drivers/gpu/drm/lima/lima_gem.c:376:8: error: implicit declaration of function 'drm_gem_reservation_object_wait'; did you mean 'drm_gem_private_object_init'? [-Werror=implicit-function-declaration]
     ret = drm_gem_reservation_object_wait(file, handle, write, timeout);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           drm_gem_private_object_init
   cc1: some warnings being treated as errors
--
   In file included from drivers/gpu/drm/lima/lima_object.c:8:
   drivers/gpu/drm/lima/lima_object.h:31:18: warning: 'struct reservation_object' declared inside parameter list will not be visible outside of this definition or declaration
              struct reservation_object *resv);
                     ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_object.c: In function 'lima_bo_destroy':
   drivers/gpu/drm/lima/lima_object.c:13:3: error: implicit declaration of function 'kfree'; did you mean 'vfree'? [-Werror=implicit-function-declaration]
      kfree(bo->pages);
      ^~~~~
      vfree
   drivers/gpu/drm/lima/lima_object.c: At top level:
   drivers/gpu/drm/lima/lima_object.c:37:18: warning: 'struct reservation_object' declared inside parameter list will not be visible outside of this definition or declaration
              struct reservation_object *resv)
                     ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_object.c: In function 'lima_bo_create_struct':
   drivers/gpu/drm/lima/lima_object.c:44:7: error: implicit declaration of function 'kzalloc'; did you mean 'vzalloc'? [-Werror=implicit-function-declaration]
     bo = kzalloc(sizeof(*bo), GFP_KERNEL);
          ^~~~~~~
          vzalloc
   drivers/gpu/drm/lima/lima_object.c:44:5: warning: assignment to 'struct lima_bo *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     bo = kzalloc(sizeof(*bo), GFP_KERNEL);
        ^
   drivers/gpu/drm/lima/lima_object.c:50:10: error: 'struct drm_gem_object' has no member named 'resv'; did you mean 'dev'?
     bo->gem.resv = resv;
             ^~~~
             dev
   drivers/gpu/drm/lima/lima_object.c: At top level:
   drivers/gpu/drm/lima/lima_object.c:63:18: warning: 'struct reservation_object' declared inside parameter list will not be visible outside of this definition or declaration
              struct reservation_object *resv)
                     ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_object.c:61:17: error: conflicting types for 'lima_bo_create'
    struct lima_bo *lima_bo_create(struct lima_device *dev, u32 size,
                    ^~~~~~~~~~~~~~
   In file included from drivers/gpu/drm/lima/lima_object.c:8:
   drivers/gpu/drm/lima/lima_object.h:29:17: note: previous declaration of 'lima_bo_create' was here
    struct lima_bo *lima_bo_create(struct lima_device *dev, u32 size,
                    ^~~~~~~~~~~~~~
   drivers/gpu/drm/lima/lima_object.c: In function 'lima_bo_create':
   drivers/gpu/drm/lima/lima_object.c:69:47: error: passing argument 4 of 'lima_bo_create_struct' from incompatible pointer type [-Werror=incompatible-pointer-types]
     bo = lima_bo_create_struct(dev, size, flags, resv);
                                                  ^~~~
   drivers/gpu/drm/lima/lima_object.c:37:38: note: expected 'struct reservation_object *' but argument is of type 'struct reservation_object *'
              struct reservation_object *resv)
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
>> drivers/gpu/drm/lima/lima_object.c:75:23: error: implicit declaration of function 'kcalloc'; did you mean 'kvcalloc'? [-Werror=implicit-function-declaration]
     bo->pages_dma_addr = kcalloc(npages, sizeof(dma_addr_t), GFP_KERNEL);
                          ^~~~~~~
                          kvcalloc
   drivers/gpu/drm/lima/lima_object.c:75:21: warning: assignment to 'dma_addr_t *' {aka 'unsigned int *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
     bo->pages_dma_addr = kcalloc(npages, sizeof(dma_addr_t), GFP_KERNEL);
                        ^
   drivers/gpu/drm/lima/lima_object.c:84:13: warning: assignment to 'struct page **' from 'int' makes pointer from integer without a cast [-Wint-conversion]
      bo->pages = kcalloc(npages, sizeof(*bo->pages), GFP_KERNEL);
                ^
   cc1: some warnings being treated as errors

vim +168 drivers/gpu/drm/lima/lima_gem.c

   131	
   132	static int lima_gem_sync_bo(struct lima_sched_task *task, struct lima_bo *bo,
   133				    bool write, bool explicit)
   134	{
   135		int err = 0;
   136	
   137		if (!write) {
   138			err = reservation_object_reserve_shared(bo->gem.resv, 1);
   139			if (err)
   140				return err;
   141		}
   142	
   143		/* explicit sync use user passed dep fence */
   144		if (explicit)
   145			return 0;
   146	
   147		/* implicit sync use bo fence in resv obj */
   148		if (write) {
   149			unsigned nr_fences;
   150			struct dma_fence **fences;
   151			int i;
   152	
 > 153			err = reservation_object_get_fences_rcu(
   154				bo->gem.resv, NULL, &nr_fences, &fences);
   155			if (err || !nr_fences)
   156				return err;
   157	
   158			for (i = 0; i < nr_fences; i++) {
   159				err = lima_sched_task_add_dep(task, fences[i]);
   160				if (err)
   161					break;
   162			}
   163	
   164			/* for error case free remaining fences */
   165			for ( ; i < nr_fences; i++)
   166				dma_fence_put(fences[i]);
   167	
 > 168			kfree(fences);
   169		} else {
   170			struct dma_fence *fence;
   171	
   172			fence = reservation_object_get_excl_rcu(bo->gem.resv);
   173			if (fence) {
   174				err = lima_sched_task_add_dep(task, fence);
   175				if (err)
   176					dma_fence_put(fence);
   177			}
   178		}
   179	
   180		return err;
   181	}
   182	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 68857 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20190310/4b434a31/attachment-0001.gz>


More information about the dri-devel mailing list