Hi Jeffrey,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on drm-tip/drm-tip linus/master v6.3-rc6]
[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/Jeffrey-Hugo/bus-mhi-host-Add-quirk-framework-and-initial-quirk/20230415-035846
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:    
https://lore.kernel.org/r/1681502239-3781-2-git-send-email-quic_jhugo%40quicinc.com
patch subject: [PATCH 1/2] bus: mhi: host: Add quirk framework and initial quirk
config: i386-randconfig-r036-20230410 
(https://download.01.org/0day-ci/archive/20230415/202304152256.qzcwi9iu-...@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project 
f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://github.com/intel-lab-lkp/linux/commit/678cad31c3c8f1b6d772150b98d25e40240e4e14
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review 
Jeffrey-Hugo/bus-mhi-host-Add-quirk-framework-and-initial-quirk/20230415-035846
        git checkout 678cad31c3c8f1b6d772150b98d25e40240e4e14
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 
O=build_dir ARCH=i386 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 
O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <l...@intel.com>
| Link: 
https://lore.kernel.org/oe-kbuild-all/202304152256.qzcwi9iu-...@intel.com/

All errors (new ones prefixed by >>):

>> drivers/bus/mhi/host/init.c:977:2: error: expected expression
           else {
           ^
>> drivers/bus/mhi/host/init.c:1043:1: error: function definition is not 
>> allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1072:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1082:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1088:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1170:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1189:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1208:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1236:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1312:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1382:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1398:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1404:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1412:1: error: function definition is not 
allowed here
   {
   ^
>> drivers/bus/mhi/host/init.c:1436:11: error: use of undeclared identifier 
>> 'mhi_match'
           .match = mhi_match,
                    ^
>> drivers/bus/mhi/host/init.c:1437:12: error: use of undeclared identifier 
>> 'mhi_uevent'; did you mean 'mhi_event'?
           .uevent = mhi_uevent,
                     ^~~~~~~~~~
                     mhi_event
   drivers/bus/mhi/host/init.c:895:20: note: 'mhi_event' declared here
           struct mhi_event *mhi_event;
                             ^
   drivers/bus/mhi/host/init.c:1442:1: error: function definition is not 
allowed here
   {
   ^
   drivers/bus/mhi/host/init.c:1448:1: error: function definition is not 
allowed here
   {
   ^
>> drivers/bus/mhi/host/init.c:1453:19: error: use of undeclared identifier 
>> 'mhi_init'
   postcore_initcall(mhi_init);
                     ^
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.


vim +977 drivers/bus/mhi/host/init.c

   891  
   892  int mhi_register_controller(struct mhi_controller *mhi_cntrl,
   893                              const struct mhi_controller_config *config)
   894  {
   895          struct mhi_event *mhi_event;
   896          struct mhi_chan *mhi_chan;
   897          struct mhi_cmd *mhi_cmd;
   898          struct mhi_device *mhi_dev;
   899          u32 soc_info;
   900          int ret, i;
   901  
   902          if (!mhi_cntrl || !mhi_cntrl->cntrl_dev || !mhi_cntrl->regs ||
   903              !mhi_cntrl->runtime_get || !mhi_cntrl->runtime_put ||
   904              !mhi_cntrl->status_cb || !mhi_cntrl->read_reg ||
   905              !mhi_cntrl->write_reg || !mhi_cntrl->nr_irqs ||
   906              !mhi_cntrl->irq || !mhi_cntrl->reg_len)
   907                  return -EINVAL;
   908  
   909          ret = parse_config(mhi_cntrl, config);
   910          if (ret)
   911                  return -EINVAL;
   912  
   913          mhi_cntrl->mhi_cmd = kcalloc(NR_OF_CMD_RINGS,
   914                                       sizeof(*mhi_cntrl->mhi_cmd), 
GFP_KERNEL);
   915          if (!mhi_cntrl->mhi_cmd) {
   916                  ret = -ENOMEM;
   917                  goto err_free_event;
   918          }
   919  
   920          INIT_LIST_HEAD(&mhi_cntrl->transition_list);
   921          mutex_init(&mhi_cntrl->pm_mutex);
   922          rwlock_init(&mhi_cntrl->pm_lock);
   923          spin_lock_init(&mhi_cntrl->transition_lock);
   924          spin_lock_init(&mhi_cntrl->wlock);
   925          INIT_WORK(&mhi_cntrl->st_worker, mhi_pm_st_worker);
   926          init_waitqueue_head(&mhi_cntrl->state_event);
   927  
   928          mhi_cntrl->hiprio_wq = alloc_ordered_workqueue("mhi_hiprio_wq", 
WQ_HIGHPRI);
   929          if (!mhi_cntrl->hiprio_wq) {
   930                  dev_err(mhi_cntrl->cntrl_dev, "Failed to allocate 
workqueue\n");
   931                  ret = -ENOMEM;
   932                  goto err_free_cmd;
   933          }
   934  
   935          mhi_cmd = mhi_cntrl->mhi_cmd;
   936          for (i = 0; i < NR_OF_CMD_RINGS; i++, mhi_cmd++)
   937                  spin_lock_init(&mhi_cmd->lock);
   938  
   939          mhi_event = mhi_cntrl->mhi_event;
   940          for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) {
   941                  /* Skip for offload events */
   942                  if (mhi_event->offload_ev)
   943                          continue;
   944  
   945                  mhi_event->mhi_cntrl = mhi_cntrl;
   946                  spin_lock_init(&mhi_event->lock);
   947                  if (mhi_event->data_type == MHI_ER_CTRL)
   948                          tasklet_init(&mhi_event->task, mhi_ctrl_ev_task,
   949                                       (ulong)mhi_event);
   950                  else
   951                          tasklet_init(&mhi_event->task, mhi_ev_task,
   952                                       (ulong)mhi_event);
   953          }
   954  
   955          mhi_chan = mhi_cntrl->mhi_chan;
   956          for (i = 0; i < mhi_cntrl->max_chan; i++, mhi_chan++) {
   957                  mutex_init(&mhi_chan->mutex);
   958                  init_completion(&mhi_chan->completion);
   959                  rwlock_init(&mhi_chan->lock);
   960  
   961                  /* used in setting bei field of TRE */
   962                  mhi_event = &mhi_cntrl->mhi_event[mhi_chan->er_index];
   963                  mhi_chan->intmod = mhi_event->intmod;
   964          }
   965  
   966          if (mhi_cntrl->bounce_buf) {
   967                  mhi_cntrl->map_single = mhi_map_single_use_bb;
   968                  mhi_cntrl->unmap_single = mhi_unmap_single_use_bb;
   969          } else {
   970                  mhi_cntrl->map_single = mhi_map_single_no_bb;
   971                  mhi_cntrl->unmap_single = mhi_unmap_single_no_bb;
   972          }
   973  
   974          /* Read the MHI device info */
   975          if (mhi_cntrl->quirks & MHI_QUIRK_SOC_HW_VERSION_UNRELIABLE) {
   976                  soc_info = 0;
 > 977          else {
   978                  ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->regs, 
SOC_HW_VERSION_OFFS, &soc_info);
   979                  if (ret)
   980                          goto err_destroy_wq;
   981          }
   982  
   983          mhi_cntrl->family_number = 
FIELD_GET(SOC_HW_VERSION_FAM_NUM_BMSK, soc_info);
   984          mhi_cntrl->device_number = 
FIELD_GET(SOC_HW_VERSION_DEV_NUM_BMSK, soc_info);
   985          mhi_cntrl->major_version = 
FIELD_GET(SOC_HW_VERSION_MAJOR_VER_BMSK, soc_info);
   986          mhi_cntrl->minor_version = 
FIELD_GET(SOC_HW_VERSION_MINOR_VER_BMSK, soc_info);
   987  
   988          mhi_cntrl->index = ida_alloc(&mhi_controller_ida, GFP_KERNEL);
   989          if (mhi_cntrl->index < 0) {
   990                  ret = mhi_cntrl->index;
   991                  goto err_destroy_wq;
   992          }
   993  
   994          ret = mhi_init_irq_setup(mhi_cntrl);
   995          if (ret)
   996                  goto err_ida_free;
   997  
   998          /* Register controller with MHI bus */
   999          mhi_dev = mhi_alloc_device(mhi_cntrl);
  1000          if (IS_ERR(mhi_dev)) {
  1001                  dev_err(mhi_cntrl->cntrl_dev, "Failed to allocate MHI 
device\n");
  1002                  ret = PTR_ERR(mhi_dev);
  1003                  goto error_setup_irq;
  1004          }
  1005  
  1006          mhi_dev->dev_type = MHI_DEVICE_CONTROLLER;
  1007          mhi_dev->mhi_cntrl = mhi_cntrl;
  1008          dev_set_name(&mhi_dev->dev, "mhi%d", mhi_cntrl->index);
  1009          mhi_dev->name = dev_name(&mhi_dev->dev);
  1010  
  1011          /* Init wakeup source */
  1012          device_init_wakeup(&mhi_dev->dev, true);
  1013  
  1014          ret = device_add(&mhi_dev->dev);
  1015          if (ret)
  1016                  goto err_release_dev;
  1017  
  1018          mhi_cntrl->mhi_dev = mhi_dev;
  1019  
  1020          mhi_create_debugfs(mhi_cntrl);
  1021  
  1022          return 0;
  1023  
  1024  err_release_dev:
  1025          put_device(&mhi_dev->dev);
  1026  error_setup_irq:
  1027          mhi_deinit_free_irq(mhi_cntrl);
  1028  err_ida_free:
  1029          ida_free(&mhi_controller_ida, mhi_cntrl->index);
  1030  err_destroy_wq:
  1031          destroy_workqueue(mhi_cntrl->hiprio_wq);
  1032  err_free_cmd:
  1033          kfree(mhi_cntrl->mhi_cmd);
  1034  err_free_event:
  1035          kfree(mhi_cntrl->mhi_event);
  1036          vfree(mhi_cntrl->mhi_chan);
  1037  
  1038          return ret;
  1039  }
  1040  EXPORT_SYMBOL_GPL(mhi_register_controller);
  1041  
  1042  void mhi_unregister_controller(struct mhi_controller *mhi_cntrl)
> 1043  {
  1044          struct mhi_device *mhi_dev = mhi_cntrl->mhi_dev;
  1045          struct mhi_chan *mhi_chan = mhi_cntrl->mhi_chan;
  1046          unsigned int i;
  1047  
  1048          mhi_deinit_free_irq(mhi_cntrl);
  1049          mhi_destroy_debugfs(mhi_cntrl);
  1050  
  1051          destroy_workqueue(mhi_cntrl->hiprio_wq);
  1052          kfree(mhi_cntrl->mhi_cmd);
  1053          kfree(mhi_cntrl->mhi_event);
  1054  
  1055          /* Drop the references to MHI devices created for channels */
  1056          for (i = 0; i < mhi_cntrl->max_chan; i++, mhi_chan++) {
  1057                  if (!mhi_chan->mhi_dev)
  1058                          continue;
  1059  
  1060                  put_device(&mhi_chan->mhi_dev->dev);
  1061          }
  1062          vfree(mhi_cntrl->mhi_chan);
  1063  
  1064          device_del(&mhi_dev->dev);
  1065          put_device(&mhi_dev->dev);
  1066  
  1067          ida_free(&mhi_controller_ida, mhi_cntrl->index);
  1068  }
  1069  EXPORT_SYMBOL_GPL(mhi_unregister_controller);
  1070  

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

Reply via email to