Hi Arnaud,

kernel test robot noticed the following build warnings:

[auto build test WARNING on remoteproc/rproc-next]
[also build test WARNING on robh/for-next linus/master v6.7 next-20240112]
[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/Arnaud-Pouliquen/remoteproc-Add-TEE-support/20240115-215613
base:   git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux.git 
rproc-next
patch link:    
https://lore.kernel.org/r/20240115135249.296822-5-arnaud.pouliquen%40foss.st.com
patch subject: [PATCH 4/4] remoteproc: stm32: Add support of an OP-TEE TA to 
load the firmware
config: arm64-allyesconfig 
(https://download.01.org/0day-ci/archive/20240116/202401161603.5dlosqij-...@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project 
9bde5becb44ea071f5e1fa1f5d4071dc8788b18c)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20240116/202401161603.5dlosqij-...@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/202401161603.5dlosqij-...@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/remoteproc/stm32_rproc.c:977:6: warning: variable 'trproc' is used 
>> uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
     977 |         if (of_device_is_compatible(np, "st,stm32mp1-m4-tee")) {
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/remoteproc/stm32_rproc.c:991:8: note: uninitialized use occurs here
     991 |                             trproc ? &st_rproc_tee_ops : 
&st_rproc_ops,
         |                             ^~~~~~
   drivers/remoteproc/stm32_rproc.c:977:2: note: remove the 'if' if its 
condition is always true
     977 |         if (of_device_is_compatible(np, "st,stm32mp1-m4-tee")) {
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/remoteproc/stm32_rproc.c:968:26: note: initialize the variable 
'trproc' to silence this warning
     968 |         struct tee_rproc *trproc;
         |                                 ^
         |                                  = NULL
   1 warning generated.


vim +977 drivers/remoteproc/stm32_rproc.c

   962  
   963  static int stm32_rproc_probe(struct platform_device *pdev)
   964  {
   965          struct device *dev = &pdev->dev;
   966          struct stm32_rproc *ddata;
   967          struct device_node *np = dev->of_node;
   968          struct tee_rproc *trproc;
   969          struct rproc *rproc;
   970          unsigned int state;
   971          int ret;
   972  
   973          ret = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(32));
   974          if (ret)
   975                  return ret;
   976  
 > 977          if (of_device_is_compatible(np, "st,stm32mp1-m4-tee")) {
   978                  trproc = tee_rproc_register(dev, STM32_MP1_M4_PROC_ID);
   979                  if (IS_ERR(trproc)) {
   980                          dev_err_probe(dev, PTR_ERR(trproc),
   981                                        "signed firmware not supported by 
TEE\n");
   982                          return PTR_ERR(trproc);
   983                  }
   984                  /*
   985                   * Delegate the firmware management to the secure 
context.
   986                   * The firmware loaded has to be signed.
   987                   */
   988                  dev_info(dev, "Support of signed firmware only\n");
   989          }
   990          rproc = rproc_alloc(dev, np->name,
   991                              trproc ? &st_rproc_tee_ops : &st_rproc_ops,
   992                              NULL, sizeof(*ddata));
   993          if (!rproc) {
   994                  ret = -ENOMEM;
   995                  goto free_tee;
   996          }
   997  
   998          ddata = rproc->priv;
   999          ddata->trproc = trproc;
  1000          if (trproc)
  1001                  trproc->rproc = rproc;
  1002  
  1003          rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
  1004  
  1005          ret = stm32_rproc_parse_dt(pdev, ddata, &rproc->auto_boot);
  1006          if (ret)
  1007                  goto free_rproc;
  1008  
  1009          ret = stm32_rproc_of_memory_translations(pdev, ddata);
  1010          if (ret)
  1011                  goto free_rproc;
  1012  
  1013          ret = stm32_rproc_get_m4_status(ddata, &state);
  1014          if (ret)
  1015                  goto free_rproc;
  1016  
  1017          if (state == M4_STATE_CRUN)
  1018                  rproc->state = RPROC_DETACHED;
  1019  
  1020          rproc->has_iommu = false;
  1021          ddata->workqueue = create_workqueue(dev_name(dev));
  1022          if (!ddata->workqueue) {
  1023                  dev_err(dev, "cannot create workqueue\n");
  1024                  ret = -ENOMEM;
  1025                  goto free_resources;
  1026          }
  1027  
  1028          platform_set_drvdata(pdev, rproc);
  1029  
  1030          ret = stm32_rproc_request_mbox(rproc);
  1031          if (ret)
  1032                  goto free_wkq;
  1033  
  1034          ret = rproc_add(rproc);
  1035          if (ret)
  1036                  goto free_mb;
  1037  
  1038          return 0;
  1039  
  1040  free_mb:
  1041          stm32_rproc_free_mbox(rproc);
  1042  free_wkq:
  1043          destroy_workqueue(ddata->workqueue);
  1044  free_resources:
  1045          rproc_resource_cleanup(rproc);
  1046  free_rproc:
  1047          if (device_may_wakeup(dev)) {
  1048                  dev_pm_clear_wake_irq(dev);
  1049                  device_init_wakeup(dev, false);
  1050          }
  1051          rproc_free(rproc);
  1052  free_tee:
  1053          if (trproc)
  1054                  tee_rproc_unregister(trproc);
  1055  
  1056          return ret;
  1057  }
  1058  

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

Reply via email to