Hi Arnaud,

kernel test robot noticed the following build errors:

[auto build test ERROR on 42f7652d3eb527d03665b09edac47f85fb600924]

url:    
https://github.com/intel-lab-lkp/linux/commits/Arnaud-Pouliquen/remoteproc-core-Introduce-rproc_pa_to_va-helper/20241026-050443
base:   42f7652d3eb527d03665b09edac47f85fb600924
patch link:    
https://lore.kernel.org/r/20241025205924.2087768-8-arnaud.pouliquen%40foss.st.com
patch subject: [PATCH v12 7/7] remoteproc: stm32: Add support of an OP-TEE TA 
to load the firmware
config: x86_64-buildonly-randconfig-004-20241026 
(https://download.01.org/0day-ci/archive/20241026/202410261837.ermjahkz-...@intel.com/config)
compiler: clang version 19.1.2 (https://github.com/llvm/llvm-project 
7ba7d8e2f7b6445b60679da826210cdde29eaf8b)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20241026/202410261837.ermjahkz-...@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/202410261837.ermjahkz-...@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/remoteproc/stm32_rproc.c:9:
   In file included from include/linux/dma-mapping.h:11:
   In file included from include/linux/scatterlist.h:8:
   In file included from include/linux/mm.h:2213:
   include/linux/vmstat.h:518:36: warning: arithmetic between different 
enumeration types ('enum node_stat_item' and 'enum lru_list') 
[-Wenum-enum-conversion]
     518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
>> drivers/remoteproc/stm32_rproc.c:904:7: error: incompatible pointer to 
>> integer conversion assigning to 'int' from 'struct rproc_tee *' 
>> [-Wint-conversion]
     904 |                 ret = rproc_tee_register(dev, rproc, proc_id);
         |                     ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/remoteproc/stm32_rproc.c:963:23: error: incompatible pointer types 
>> passing 'struct rproc *' to parameter of type 'struct rproc_tee *' 
>> [-Werror,-Wincompatible-pointer-types]
     963 |         rproc_tee_unregister(rproc);
         |                              ^~~~~
   include/linux/remoteproc_tee.h:59:58: note: passing argument to parameter 
'trproc' here
      59 | static inline int rproc_tee_unregister(struct rproc_tee *trproc)
         |                                                          ^
   drivers/remoteproc/stm32_rproc.c:986:23: error: incompatible pointer types 
passing 'struct rproc *' to parameter of type 'struct rproc_tee *' 
[-Werror,-Wincompatible-pointer-types]
     986 |         rproc_tee_unregister(rproc);
         |                              ^~~~~
   include/linux/remoteproc_tee.h:59:58: note: passing argument to parameter 
'trproc' here
      59 | static inline int rproc_tee_unregister(struct rproc_tee *trproc)
         |                                                          ^
   1 warning and 3 errors generated.


vim +904 drivers/remoteproc/stm32_rproc.c

   874  
   875  static int stm32_rproc_probe(struct platform_device *pdev)
   876  {
   877          struct device *dev = &pdev->dev;
   878          struct stm32_rproc *ddata;
   879          struct device_node *np = dev->of_node;
   880          struct rproc *rproc;
   881          unsigned int state;
   882          u32 proc_id;
   883          int ret;
   884  
   885          ret = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(32));
   886          if (ret)
   887                  return ret;
   888  
   889          if (of_device_is_compatible(np, "st,stm32mp1-m4-tee")) {
   890                  /*
   891                   * Delegate the firmware management to the secure 
context.
   892                   * The firmware loaded has to be signed.
   893                   */
   894                  ret = of_property_read_u32(np, "st,proc-id", &proc_id);
   895                  if (ret) {
   896                          dev_err(dev, "failed to read st,rproc-id 
property\n");
   897                          return ret;
   898                  }
   899  
   900                  rproc = devm_rproc_alloc(dev, np->name, 
&st_rproc_tee_ops, NULL, sizeof(*ddata));
   901                  if (!rproc)
   902                          return -ENOMEM;
   903  
 > 904                  ret = rproc_tee_register(dev, rproc, proc_id);
   905                  if (ret)
   906                          return dev_err_probe(dev, ret,  "signed 
firmware not supported by TEE\n");
   907          } else {
   908                  rproc = devm_rproc_alloc(dev, np->name, &st_rproc_ops, 
NULL, sizeof(*ddata));
   909                  if (!rproc)
   910                          return -ENOMEM;
   911          }
   912  
   913          ddata = rproc->priv;
   914  
   915          rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
   916  
   917          ret = stm32_rproc_parse_dt(pdev, ddata, &rproc->auto_boot);
   918          if (ret)
   919                  goto free_rproc;
   920  
   921          ret = stm32_rproc_of_memory_translations(pdev, ddata);
   922          if (ret)
   923                  goto free_rproc;
   924  
   925          ret = stm32_rproc_get_m4_status(ddata, &state);
   926          if (ret)
   927                  goto free_rproc;
   928  
   929          if (state == M4_STATE_CRUN)
   930                  rproc->state = RPROC_DETACHED;
   931  
   932          rproc->has_iommu = false;
   933          ddata->workqueue = create_workqueue(dev_name(dev));
   934          if (!ddata->workqueue) {
   935                  dev_err(dev, "cannot create workqueue\n");
   936                  ret = -ENOMEM;
   937                  goto free_resources;
   938          }
   939  
   940          platform_set_drvdata(pdev, rproc);
   941  
   942          ret = stm32_rproc_request_mbox(rproc);
   943          if (ret)
   944                  goto free_wkq;
   945  
   946          ret = rproc_add(rproc);
   947          if (ret)
   948                  goto free_mb;
   949  
   950          return 0;
   951  
   952  free_mb:
   953          stm32_rproc_free_mbox(rproc);
   954  free_wkq:
   955          destroy_workqueue(ddata->workqueue);
   956  free_resources:
   957          rproc_resource_cleanup(rproc);
   958  free_rproc:
   959          if (device_may_wakeup(dev)) {
   960                  dev_pm_clear_wake_irq(dev);
   961                  device_init_wakeup(dev, false);
   962          }
 > 963          rproc_tee_unregister(rproc);
   964  
   965          return ret;
   966  }
   967  

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

Reply via email to