Hi Yunxiang,

kernel test robot noticed the following build errors:



url:    
https://github.com/intel-lab-lkp/linux/commits/UPDATE-20230624-040209/Yunxiang-Li/drm-amdgpu-fix-missing-fence-reserve-in-amdgpu_vm_sdma_commit/20230622-002915
base:   the 2th patch of 
https://lore.kernel.org/r/20230621162652.10875-3-Yunxiang.Li%40amd.com
patch link:    
https://lore.kernel.org/r/20230623200113.62051-1-Yunxiang.Li%40amd.com
patch subject: [PATCH v2] dma-buf: allow nested dma_resv_reserve_fences
config: s390-randconfig-r016-20230621 
(https://download.01.org/0day-ci/archive/20230624/202306240524.wbchwulj-...@intel.com/config)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project.git 
8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce: 
(https://download.01.org/0day-ci/archive/20230624/202306240524.wbchwulj-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202306240524.wbchwulj-...@intel.com/

All errors (new ones prefixed by >>):

>> drivers/dma-buf/dma-resv.c:326:2: error: unterminated conditional directive
   #ifdef CONFIG_DEBUG_MUTEXES
    ^
>> drivers/dma-buf/dma-resv.c:817:7: error: expected '}'
   #endif
         ^
   drivers/dma-buf/dma-resv.c:288:1: note: to match this '{'
   {
   ^
   2 errors generated.


vim +326 drivers/dma-buf/dma-resv.c

   274  
   275  /**
   276   * dma_resv_add_fence - Add a fence to the dma_resv obj
   277   * @obj: the reservation object
   278   * @fence: the fence to add
   279   * @usage: how the fence is used, see enum dma_resv_usage
   280   *
   281   * Add a fence to a slot, @obj must be locked with dma_resv_lock(), and
   282   * dma_resv_reserve_fences() has been called.
   283   *
   284   * See also &dma_resv.fence for a discussion of the semantics.
   285   */
   286  void dma_resv_add_fence(struct dma_resv *obj, struct dma_fence *fence,
   287                          enum dma_resv_usage usage)
   288  {
   289          struct dma_resv_list *fobj;
   290          struct dma_fence *old;
   291          unsigned int i, count;
   292  
   293          dma_fence_get(fence);
   294  
   295          dma_resv_assert_held(obj);
   296  
   297          /* Drivers should not add containers here, instead add each 
fence
   298           * individually.
   299           */
   300          WARN_ON(dma_fence_is_container(fence));
   301  
   302  retry:
   303          fobj = dma_resv_fences_list(obj);
   304          count = fobj->num_fences;
   305  
   306          for (i = 0; i < count; ++i) {
   307                  enum dma_resv_usage old_usage;
   308  
   309                  dma_resv_list_entry(fobj, i, obj, &old, &old_usage);
   310                  if ((old->context == fence->context && old_usage >= 
usage &&
   311                       dma_fence_is_later(fence, old)) ||
   312                      dma_fence_is_signaled(old)) {
   313                          dma_resv_list_set(fobj, i, fence, usage);
   314                          dma_fence_put(old);
   315                          return;
   316                  }
   317          }
   318  
   319          if (WARN_ON(fobj->num_fences == fobj->max_fences)) {
   320                  // try our best to avoid memory corruption
   321                  dma_resv_reserve_fences(obj, 1);
   322                  goto retry;
   323          }
   324          if (fobj->reserved_fences)
   325                  fobj->reserved_fences -= 1;
 > 326  #ifdef CONFIG_DEBUG_MUTEXES
   327          else
   328                  WARN_ON(1); // missing fence slot allocation
   329  #else
   330          count++;
   331  
   332          dma_resv_list_set(fobj, i, fence, usage);
   333          /* pointer update must be visible before we extend the 
num_fences */
   334          smp_store_mb(fobj->num_fences, count);
   335  }
   336  EXPORT_SYMBOL(dma_resv_add_fence);
   337  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to