public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
* Re: [PATCH v3 12/14] drm/panthor: Allow driver compilation
       [not found] <20231204173313.2098733-13-boris.brezillon@collabora.com>
@ 2023-12-05 23:34 ` kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-12-05 23:34 UTC (permalink / raw)
  To: Boris Brezillon; +Cc: llvm, oe-kbuild-all

Hi Boris,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on drm/drm-next drm-exynos/exynos-drm-next drm-intel/for-linux-next drm-intel/for-linux-next-fixes drm-tip/drm-tip linus/master v6.7-rc4 next-20231205]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Boris-Brezillon/drm-panthor-Add-GPU-register-definitions/20231205-023301
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:    https://lore.kernel.org/r/20231204173313.2098733-13-boris.brezillon%40collabora.com
patch subject: [PATCH v3 12/14] drm/panthor: Allow driver compilation
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20231206/202312060755.OMcP3qSq-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231206/202312060755.OMcP3qSq-lkp@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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312060755.OMcP3qSq-lkp@intel.com/

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

   drivers/gpu/drm/panthor/panthor_mmu.c:1019:8: error: assigning to 'bool' (aka '_Bool') from incompatible type 'void'
    1019 |         unpin = drm_gpuvm_bo_put(vm_bo);
         |               ^ ~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/panthor/panthor_mmu.c:2167:4: error: field designator 'alloc' does not refer to any field in type 'struct io_pgtable_cfg'
    2167 |                 .alloc          = alloc_pt,
         |                 ~^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/panthor/panthor_mmu.c:2168:4: error: field designator 'free' does not refer to any field in type 'struct io_pgtable_cfg'
    2168 |                 .free           = free_pt,
         |                 ~^~~~~~~~~~~~~~~~~~~~~~~~
   3 errors generated.
--
>> drivers/gpu/drm/panthor/panthor_sched.c:1966:6: warning: variable 'csg_mod_mask' set but not used [-Wunused-but-set-variable]
    1966 |         u32 csg_mod_mask = 0, free_csg_slots = 0;
         |             ^
   1 warning generated.


vim +2167 drivers/gpu/drm/panthor/panthor_mmu.c

bed8deda31e29cf Boris Brezillon 2023-12-04  2099  
bed8deda31e29cf Boris Brezillon 2023-12-04  2100  /**
bed8deda31e29cf Boris Brezillon 2023-12-04  2101   * panthor_vm_create() - Create a VM
bed8deda31e29cf Boris Brezillon 2023-12-04  2102   * @ptdev: Device.
bed8deda31e29cf Boris Brezillon 2023-12-04  2103   * @for_mcu: True if this is the FW MCU VM.
bed8deda31e29cf Boris Brezillon 2023-12-04  2104   * @kernel_va_start: Start of the range reserved for kernel BO mapping.
bed8deda31e29cf Boris Brezillon 2023-12-04  2105   * @kernel_va_size: Size of the range reserved for kernel BO mapping.
bed8deda31e29cf Boris Brezillon 2023-12-04  2106   * @auto_kernel_va_start: Start of the auto-VA kernel range.
bed8deda31e29cf Boris Brezillon 2023-12-04  2107   * @auto_kernel_va_size: Size of the auto-VA kernel range.
bed8deda31e29cf Boris Brezillon 2023-12-04  2108   *
bed8deda31e29cf Boris Brezillon 2023-12-04  2109   * Return: A valid pointer on success, an ERR_PTR() otherwise.
bed8deda31e29cf Boris Brezillon 2023-12-04  2110   */
bed8deda31e29cf Boris Brezillon 2023-12-04  2111  struct panthor_vm *
bed8deda31e29cf Boris Brezillon 2023-12-04  2112  panthor_vm_create(struct panthor_device *ptdev, bool for_mcu,
bed8deda31e29cf Boris Brezillon 2023-12-04  2113  		  u64 kernel_va_start, u64 kernel_va_size,
bed8deda31e29cf Boris Brezillon 2023-12-04  2114  		  u64 auto_kernel_va_start, u64 auto_kernel_va_size)
bed8deda31e29cf Boris Brezillon 2023-12-04  2115  {
bed8deda31e29cf Boris Brezillon 2023-12-04  2116  	u32 va_bits = GPU_MMU_FEATURES_VA_BITS(ptdev->gpu_info.mmu_features);
bed8deda31e29cf Boris Brezillon 2023-12-04  2117  	u32 pa_bits = GPU_MMU_FEATURES_PA_BITS(ptdev->gpu_info.mmu_features);
bed8deda31e29cf Boris Brezillon 2023-12-04  2118  	u64 full_va_range = 1ull << min_t(u32, va_bits, sizeof(unsigned long) * 8);
bed8deda31e29cf Boris Brezillon 2023-12-04  2119  	struct drm_gem_object *dummy_gem;
bed8deda31e29cf Boris Brezillon 2023-12-04  2120  	struct drm_gpu_scheduler *sched;
bed8deda31e29cf Boris Brezillon 2023-12-04  2121  	struct io_pgtable_cfg pgtbl_cfg;
bed8deda31e29cf Boris Brezillon 2023-12-04  2122  	u64 mair, min_va, va_range;
bed8deda31e29cf Boris Brezillon 2023-12-04  2123  	struct panthor_vm *vm;
bed8deda31e29cf Boris Brezillon 2023-12-04  2124  	int ret;
bed8deda31e29cf Boris Brezillon 2023-12-04  2125  
bed8deda31e29cf Boris Brezillon 2023-12-04  2126  	vm = kzalloc(sizeof(*vm), GFP_KERNEL);
bed8deda31e29cf Boris Brezillon 2023-12-04  2127  	if (!vm)
bed8deda31e29cf Boris Brezillon 2023-12-04  2128  		return ERR_PTR(-ENOMEM);
bed8deda31e29cf Boris Brezillon 2023-12-04  2129  
bed8deda31e29cf Boris Brezillon 2023-12-04  2130  	/* We allocate a dummy GEM for the VM. */
bed8deda31e29cf Boris Brezillon 2023-12-04  2131  	dummy_gem = drm_gpuvm_resv_object_alloc(&ptdev->base);
bed8deda31e29cf Boris Brezillon 2023-12-04  2132  	if (!dummy_gem) {
bed8deda31e29cf Boris Brezillon 2023-12-04  2133  		ret = -ENOMEM;
bed8deda31e29cf Boris Brezillon 2023-12-04  2134  		goto err_free_vm;
bed8deda31e29cf Boris Brezillon 2023-12-04  2135  	}
bed8deda31e29cf Boris Brezillon 2023-12-04  2136  
bed8deda31e29cf Boris Brezillon 2023-12-04  2137  	mutex_init(&vm->heaps.lock);
bed8deda31e29cf Boris Brezillon 2023-12-04  2138  	vm->for_mcu = for_mcu;
bed8deda31e29cf Boris Brezillon 2023-12-04  2139  	vm->ptdev = ptdev;
bed8deda31e29cf Boris Brezillon 2023-12-04  2140  	mutex_init(&vm->op_lock);
bed8deda31e29cf Boris Brezillon 2023-12-04  2141  
bed8deda31e29cf Boris Brezillon 2023-12-04  2142  	if (for_mcu) {
bed8deda31e29cf Boris Brezillon 2023-12-04  2143  		/* CSF MCU is a cortex M7, and can only address 4G */
bed8deda31e29cf Boris Brezillon 2023-12-04  2144  		min_va = 0;
bed8deda31e29cf Boris Brezillon 2023-12-04  2145  		va_range = SZ_4G;
bed8deda31e29cf Boris Brezillon 2023-12-04  2146  	} else {
bed8deda31e29cf Boris Brezillon 2023-12-04  2147  		min_va = 0;
bed8deda31e29cf Boris Brezillon 2023-12-04  2148  		va_range = full_va_range;
bed8deda31e29cf Boris Brezillon 2023-12-04  2149  	}
bed8deda31e29cf Boris Brezillon 2023-12-04  2150  
bed8deda31e29cf Boris Brezillon 2023-12-04  2151  	mutex_init(&vm->mm_lock);
bed8deda31e29cf Boris Brezillon 2023-12-04  2152  	drm_mm_init(&vm->mm, kernel_va_start, kernel_va_size);
bed8deda31e29cf Boris Brezillon 2023-12-04  2153  	vm->kernel_auto_va.start = auto_kernel_va_start;
bed8deda31e29cf Boris Brezillon 2023-12-04  2154  	vm->kernel_auto_va.end = vm->kernel_auto_va.start + auto_kernel_va_size - 1;
bed8deda31e29cf Boris Brezillon 2023-12-04  2155  
bed8deda31e29cf Boris Brezillon 2023-12-04  2156  	INIT_LIST_HEAD(&vm->node);
bed8deda31e29cf Boris Brezillon 2023-12-04  2157  	INIT_LIST_HEAD(&vm->as.lru_node);
bed8deda31e29cf Boris Brezillon 2023-12-04  2158  	vm->as.id = -1;
bed8deda31e29cf Boris Brezillon 2023-12-04  2159  
bed8deda31e29cf Boris Brezillon 2023-12-04  2160  	pgtbl_cfg = (struct io_pgtable_cfg) {
bed8deda31e29cf Boris Brezillon 2023-12-04  2161  		.pgsize_bitmap	= SZ_4K | SZ_2M,
bed8deda31e29cf Boris Brezillon 2023-12-04  2162  		.ias		= va_bits,
bed8deda31e29cf Boris Brezillon 2023-12-04  2163  		.oas		= pa_bits,
bed8deda31e29cf Boris Brezillon 2023-12-04  2164  		.coherent_walk	= ptdev->coherent,
bed8deda31e29cf Boris Brezillon 2023-12-04  2165  		.tlb		= &mmu_tlb_ops,
bed8deda31e29cf Boris Brezillon 2023-12-04  2166  		.iommu_dev	= ptdev->base.dev,
bed8deda31e29cf Boris Brezillon 2023-12-04 @2167  		.alloc		= alloc_pt,
bed8deda31e29cf Boris Brezillon 2023-12-04 @2168  		.free		= free_pt,
bed8deda31e29cf Boris Brezillon 2023-12-04  2169  	};
bed8deda31e29cf Boris Brezillon 2023-12-04  2170  
bed8deda31e29cf Boris Brezillon 2023-12-04  2171  	vm->pgtbl_ops = alloc_io_pgtable_ops(ARM_64_LPAE_S1, &pgtbl_cfg, vm);
bed8deda31e29cf Boris Brezillon 2023-12-04  2172  	if (!vm->pgtbl_ops) {
bed8deda31e29cf Boris Brezillon 2023-12-04  2173  		ret = -EINVAL;
bed8deda31e29cf Boris Brezillon 2023-12-04  2174  		goto err_mm_takedown;
bed8deda31e29cf Boris Brezillon 2023-12-04  2175  	}
bed8deda31e29cf Boris Brezillon 2023-12-04  2176  
bed8deda31e29cf Boris Brezillon 2023-12-04  2177  	/* Bind operations are synchronous for now, no timeout needed. */
bed8deda31e29cf Boris Brezillon 2023-12-04  2178  	ret = drm_sched_init(&vm->sched, &panthor_vm_bind_ops, ptdev->mmu->vm.wq,
bed8deda31e29cf Boris Brezillon 2023-12-04  2179  			     1, 1, 0,
bed8deda31e29cf Boris Brezillon 2023-12-04  2180  			     MAX_SCHEDULE_TIMEOUT, NULL, NULL,
bed8deda31e29cf Boris Brezillon 2023-12-04  2181  			     "panthor-vm-bind", ptdev->base.dev);
bed8deda31e29cf Boris Brezillon 2023-12-04  2182  	if (ret)
bed8deda31e29cf Boris Brezillon 2023-12-04  2183  		goto err_free_io_pgtable;
bed8deda31e29cf Boris Brezillon 2023-12-04  2184  
bed8deda31e29cf Boris Brezillon 2023-12-04  2185  	sched = &vm->sched;
bed8deda31e29cf Boris Brezillon 2023-12-04  2186  	ret = drm_sched_entity_init(&vm->entity, 0, &sched, 1, NULL);
bed8deda31e29cf Boris Brezillon 2023-12-04  2187  	if (ret)
bed8deda31e29cf Boris Brezillon 2023-12-04  2188  		goto err_sched_fini;
bed8deda31e29cf Boris Brezillon 2023-12-04  2189  
bed8deda31e29cf Boris Brezillon 2023-12-04  2190  	mair = io_pgtable_ops_to_pgtable(vm->pgtbl_ops)->cfg.arm_lpae_s1_cfg.mair;
bed8deda31e29cf Boris Brezillon 2023-12-04  2191  	vm->memattr = mair_to_memattr(mair);
bed8deda31e29cf Boris Brezillon 2023-12-04  2192  
bed8deda31e29cf Boris Brezillon 2023-12-04  2193  	mutex_lock(&ptdev->mmu->vm.lock);
bed8deda31e29cf Boris Brezillon 2023-12-04  2194  	list_add_tail(&vm->node, &ptdev->mmu->vm.list);
bed8deda31e29cf Boris Brezillon 2023-12-04  2195  
bed8deda31e29cf Boris Brezillon 2023-12-04  2196  	/* If a reset is in progress, stop the scheduler. */
bed8deda31e29cf Boris Brezillon 2023-12-04  2197  	if (ptdev->mmu->vm.reset_in_progress)
bed8deda31e29cf Boris Brezillon 2023-12-04  2198  		panthor_vm_stop(vm);
bed8deda31e29cf Boris Brezillon 2023-12-04  2199  	mutex_unlock(&ptdev->mmu->vm.lock);
bed8deda31e29cf Boris Brezillon 2023-12-04  2200  
bed8deda31e29cf Boris Brezillon 2023-12-04  2201  	/* We intentionally leave the reserved range to zero, because we want kernel VMAs
bed8deda31e29cf Boris Brezillon 2023-12-04  2202  	 * to be handled the same way user VMAs are.
bed8deda31e29cf Boris Brezillon 2023-12-04  2203  	 */
bed8deda31e29cf Boris Brezillon 2023-12-04  2204  	drm_gpuvm_init(&vm->base,
bed8deda31e29cf Boris Brezillon 2023-12-04  2205  		       for_mcu ? "panthor-MCU-VM" : "panthor-GPU-VM",
bed8deda31e29cf Boris Brezillon 2023-12-04  2206  		       0, &ptdev->base, dummy_gem, min_va, va_range, 0, 0,
bed8deda31e29cf Boris Brezillon 2023-12-04  2207  		       &panthor_gpuvm_ops);
bed8deda31e29cf Boris Brezillon 2023-12-04  2208  	drm_gem_object_put(dummy_gem);
bed8deda31e29cf Boris Brezillon 2023-12-04  2209  	return vm;
bed8deda31e29cf Boris Brezillon 2023-12-04  2210  
bed8deda31e29cf Boris Brezillon 2023-12-04  2211  err_sched_fini:
bed8deda31e29cf Boris Brezillon 2023-12-04  2212  	drm_sched_fini(&vm->sched);
bed8deda31e29cf Boris Brezillon 2023-12-04  2213  
bed8deda31e29cf Boris Brezillon 2023-12-04  2214  err_free_io_pgtable:
bed8deda31e29cf Boris Brezillon 2023-12-04  2215  	free_io_pgtable_ops(vm->pgtbl_ops);
bed8deda31e29cf Boris Brezillon 2023-12-04  2216  
bed8deda31e29cf Boris Brezillon 2023-12-04  2217  err_mm_takedown:
bed8deda31e29cf Boris Brezillon 2023-12-04  2218  	drm_mm_takedown(&vm->mm);
bed8deda31e29cf Boris Brezillon 2023-12-04  2219  	drm_gem_object_put(dummy_gem);
bed8deda31e29cf Boris Brezillon 2023-12-04  2220  
bed8deda31e29cf Boris Brezillon 2023-12-04  2221  err_free_vm:
bed8deda31e29cf Boris Brezillon 2023-12-04  2222  	kfree(vm);
bed8deda31e29cf Boris Brezillon 2023-12-04  2223  	return ERR_PTR(ret);
bed8deda31e29cf Boris Brezillon 2023-12-04  2224  }
bed8deda31e29cf Boris Brezillon 2023-12-04  2225  

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

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

only message in thread, other threads:[~2023-12-05 23:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20231204173313.2098733-13-boris.brezillon@collabora.com>
2023-12-05 23:34 ` [PATCH v3 12/14] drm/panthor: Allow driver compilation kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox