Hi Hadar,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on sparc/master]
[also build test ERROR on stm32/stm32-next linus/master v5.7-rc2 next-20200422]
[cannot apply to sparc-next/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Hadar-Gat/of_device-removed-include-that-caused-a-recursion-in-included-headers/20200423-040844
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc.git master
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross 
ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   drivers/firmware/ti_sci.c: In function 'ti_sci_probe':
>> drivers/firmware/ti_sci.c:3520:9: error: implicit declaration of function 
>> 'of_platform_populate' [-Werror=implicit-function-declaration]
    3520 |  return of_platform_populate(dev->of_node, NULL, NULL, dev);
         |         ^~~~~~~~~~~~~~~~~~~~
   drivers/firmware/ti_sci.c: In function 'ti_sci_remove':
>> drivers/firmware/ti_sci.c:3536:2: error: implicit declaration of function 
>> 'of_platform_depopulate' [-Werror=implicit-function-declaration]
    3536 |  of_platform_depopulate(dev);
         |  ^~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   drivers/firmware/tegra/bpmp.c: In function 'tegra_bpmp_get':
>> drivers/firmware/tegra/bpmp.c:51:9: error: implicit declaration of function 
>> 'of_find_device_by_node'; did you mean 'bus_find_device_by_fwnode'? 
>> [-Werror=implicit-function-declaration]
      51 |  pdev = of_find_device_by_node(np);
         |         ^~~~~~~~~~~~~~~~~~~~~~
         |         bus_find_device_by_fwnode
   drivers/firmware/tegra/bpmp.c:51:7: warning: assignment to 'struct 
platform_device *' from 'int' makes pointer from integer without a cast 
[-Wint-conversion]
      51 |  pdev = of_find_device_by_node(np);
         |       ^
   drivers/firmware/tegra/bpmp.c: In function 'tegra_bpmp_probe':
>> drivers/firmware/tegra/bpmp.c:759:8: error: implicit declaration of function 
>> 'of_platform_default_populate' [-Werror=implicit-function-declaration]
     759 |  err = of_platform_default_populate(pdev->dev.of_node, NULL, 
&pdev->dev);
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c: In function 
'sun8i_dw_hdmi_find_connector_pdev':
>> drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c:115:9: error: implicit declaration of 
>> function 'of_find_device_by_node'; did you mean 
>> 'of_find_i2c_device_by_node'? [-Werror=implicit-function-declaration]
     115 |  pdev = of_find_device_by_node(remote);
         |         ^~~~~~~~~~~~~~~~~~~~~~
         |         of_find_i2c_device_by_node
   drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c:115:7: warning: assignment to 'struct 
platform_device *' from 'int' makes pointer from integer without a cast 
[-Wint-conversion]
     115 |  pdev = of_find_device_by_node(remote);
         |       ^
   cc1: some warnings being treated as errors

vim +/of_platform_populate +3520 drivers/firmware/ti_sci.c

aa276781a64a5f Nishanth Menon 2016-10-18  3385  
aa276781a64a5f Nishanth Menon 2016-10-18  3386  static int ti_sci_probe(struct 
platform_device *pdev)
aa276781a64a5f Nishanth Menon 2016-10-18  3387  {
aa276781a64a5f Nishanth Menon 2016-10-18  3388          struct device *dev = 
&pdev->dev;
aa276781a64a5f Nishanth Menon 2016-10-18  3389          const struct 
of_device_id *of_id;
aa276781a64a5f Nishanth Menon 2016-10-18  3390          const struct 
ti_sci_desc *desc;
aa276781a64a5f Nishanth Menon 2016-10-18  3391          struct ti_sci_xfer 
*xfer;
aa276781a64a5f Nishanth Menon 2016-10-18  3392          struct ti_sci_info 
*info = NULL;
aa276781a64a5f Nishanth Menon 2016-10-18  3393          struct 
ti_sci_xfers_info *minfo;
aa276781a64a5f Nishanth Menon 2016-10-18  3394          struct mbox_client *cl;
aa276781a64a5f Nishanth Menon 2016-10-18  3395          int ret = -EINVAL;
aa276781a64a5f Nishanth Menon 2016-10-18  3396          int i;
912cffb4ed8612 Nishanth Menon 2016-10-18  3397          int reboot = 0;
e69a35531589a2 Nishanth Menon 2018-08-28  3398          u32 h_id;
aa276781a64a5f Nishanth Menon 2016-10-18  3399  
aa276781a64a5f Nishanth Menon 2016-10-18  3400          of_id = 
of_match_device(ti_sci_of_match, dev);
aa276781a64a5f Nishanth Menon 2016-10-18  3401          if (!of_id) {
aa276781a64a5f Nishanth Menon 2016-10-18  3402                  dev_err(dev, 
"OF data missing\n");
aa276781a64a5f Nishanth Menon 2016-10-18  3403                  return -EINVAL;
aa276781a64a5f Nishanth Menon 2016-10-18  3404          }
aa276781a64a5f Nishanth Menon 2016-10-18  3405          desc = of_id->data;
aa276781a64a5f Nishanth Menon 2016-10-18  3406  
aa276781a64a5f Nishanth Menon 2016-10-18  3407          info = 
devm_kzalloc(dev, sizeof(*info), GFP_KERNEL);
aa276781a64a5f Nishanth Menon 2016-10-18  3408          if (!info)
aa276781a64a5f Nishanth Menon 2016-10-18  3409                  return -ENOMEM;
aa276781a64a5f Nishanth Menon 2016-10-18  3410  
aa276781a64a5f Nishanth Menon 2016-10-18  3411          info->dev = dev;
aa276781a64a5f Nishanth Menon 2016-10-18  3412          info->desc = desc;
e69a35531589a2 Nishanth Menon 2018-08-28  3413          ret = 
of_property_read_u32(dev->of_node, "ti,host-id", &h_id);
e69a35531589a2 Nishanth Menon 2018-08-28  3414          /* if the property is 
not present in DT, use a default from desc */
e69a35531589a2 Nishanth Menon 2018-08-28  3415          if (ret < 0) {
e69a35531589a2 Nishanth Menon 2018-08-28  3416                  info->host_id = 
info->desc->default_host_id;
e69a35531589a2 Nishanth Menon 2018-08-28  3417          } else {
e69a35531589a2 Nishanth Menon 2018-08-28  3418                  if (!h_id) {
e69a35531589a2 Nishanth Menon 2018-08-28  3419                          
dev_warn(dev, "Host ID 0 is reserved for firmware\n");
e69a35531589a2 Nishanth Menon 2018-08-28  3420                          
info->host_id = info->desc->default_host_id;
e69a35531589a2 Nishanth Menon 2018-08-28  3421                  } else {
e69a35531589a2 Nishanth Menon 2018-08-28  3422                          
info->host_id = h_id;
e69a35531589a2 Nishanth Menon 2018-08-28  3423                  }
e69a35531589a2 Nishanth Menon 2018-08-28  3424          }
e69a35531589a2 Nishanth Menon 2018-08-28  3425  
912cffb4ed8612 Nishanth Menon 2016-10-18  3426          reboot = 
of_property_read_bool(dev->of_node,
912cffb4ed8612 Nishanth Menon 2016-10-18  3427                                  
       "ti,system-reboot-controller");
aa276781a64a5f Nishanth Menon 2016-10-18  3428          
INIT_LIST_HEAD(&info->node);
aa276781a64a5f Nishanth Menon 2016-10-18  3429          minfo = &info->minfo;
aa276781a64a5f Nishanth Menon 2016-10-18  3430  
aa276781a64a5f Nishanth Menon 2016-10-18  3431          /*
aa276781a64a5f Nishanth Menon 2016-10-18  3432           * Pre-allocate messages
aa276781a64a5f Nishanth Menon 2016-10-18  3433           * NEVER allocate more 
than what we can indicate in hdr.seq
aa276781a64a5f Nishanth Menon 2016-10-18  3434           * if we have data 
description bug, force a fix..
aa276781a64a5f Nishanth Menon 2016-10-18  3435           */
aa276781a64a5f Nishanth Menon 2016-10-18  3436          if 
(WARN_ON(desc->max_msgs >=
aa276781a64a5f Nishanth Menon 2016-10-18  3437                      1 << 8 * 
sizeof(((struct ti_sci_msg_hdr *)0)->seq)))
aa276781a64a5f Nishanth Menon 2016-10-18  3438                  return -EINVAL;
aa276781a64a5f Nishanth Menon 2016-10-18  3439  
aa276781a64a5f Nishanth Menon 2016-10-18  3440          minfo->xfer_block = 
devm_kcalloc(dev,
aa276781a64a5f Nishanth Menon 2016-10-18  3441                                  
         desc->max_msgs,
aa276781a64a5f Nishanth Menon 2016-10-18  3442                                  
         sizeof(*minfo->xfer_block),
aa276781a64a5f Nishanth Menon 2016-10-18  3443                                  
         GFP_KERNEL);
aa276781a64a5f Nishanth Menon 2016-10-18  3444          if (!minfo->xfer_block)
aa276781a64a5f Nishanth Menon 2016-10-18  3445                  return -ENOMEM;
aa276781a64a5f Nishanth Menon 2016-10-18  3446  
a86854d0c599b3 Kees Cook      2018-06-12  3447          minfo->xfer_alloc_table 
= devm_kcalloc(dev,
a86854d0c599b3 Kees Cook      2018-06-12  3448                                  
               BITS_TO_LONGS(desc->max_msgs),
a86854d0c599b3 Kees Cook      2018-06-12  3449                                  
               sizeof(unsigned long),
aa276781a64a5f Nishanth Menon 2016-10-18  3450                                  
               GFP_KERNEL);
aa276781a64a5f Nishanth Menon 2016-10-18  3451          if 
(!minfo->xfer_alloc_table)
aa276781a64a5f Nishanth Menon 2016-10-18  3452                  return -ENOMEM;
aa276781a64a5f Nishanth Menon 2016-10-18  3453          
bitmap_zero(minfo->xfer_alloc_table, desc->max_msgs);
aa276781a64a5f Nishanth Menon 2016-10-18  3454  
aa276781a64a5f Nishanth Menon 2016-10-18  3455          /* Pre-initialize the 
buffer pointer to pre-allocated buffers */
aa276781a64a5f Nishanth Menon 2016-10-18  3456          for (i = 0, xfer = 
minfo->xfer_block; i < desc->max_msgs; i++, xfer++) {
aa276781a64a5f Nishanth Menon 2016-10-18  3457                  xfer->xfer_buf 
= devm_kcalloc(dev, 1, desc->max_msg_size,
aa276781a64a5f Nishanth Menon 2016-10-18  3458                                  
              GFP_KERNEL);
aa276781a64a5f Nishanth Menon 2016-10-18  3459                  if 
(!xfer->xfer_buf)
aa276781a64a5f Nishanth Menon 2016-10-18  3460                          return 
-ENOMEM;
aa276781a64a5f Nishanth Menon 2016-10-18  3461  
aa276781a64a5f Nishanth Menon 2016-10-18  3462                  
xfer->tx_message.buf = xfer->xfer_buf;
aa276781a64a5f Nishanth Menon 2016-10-18  3463                  
init_completion(&xfer->done);
aa276781a64a5f Nishanth Menon 2016-10-18  3464          }
aa276781a64a5f Nishanth Menon 2016-10-18  3465  
aa276781a64a5f Nishanth Menon 2016-10-18  3466          ret = 
ti_sci_debugfs_create(pdev, info);
aa276781a64a5f Nishanth Menon 2016-10-18  3467          if (ret)
aa276781a64a5f Nishanth Menon 2016-10-18  3468                  dev_warn(dev, 
"Failed to create debug file\n");
aa276781a64a5f Nishanth Menon 2016-10-18  3469  
aa276781a64a5f Nishanth Menon 2016-10-18  3470          
platform_set_drvdata(pdev, info);
aa276781a64a5f Nishanth Menon 2016-10-18  3471  
aa276781a64a5f Nishanth Menon 2016-10-18  3472          cl = &info->cl;
aa276781a64a5f Nishanth Menon 2016-10-18  3473          cl->dev = dev;
aa276781a64a5f Nishanth Menon 2016-10-18  3474          cl->tx_block = false;
aa276781a64a5f Nishanth Menon 2016-10-18  3475          cl->rx_callback = 
ti_sci_rx_callback;
aa276781a64a5f Nishanth Menon 2016-10-18  3476          cl->knows_txdone = true;
aa276781a64a5f Nishanth Menon 2016-10-18  3477  
aa276781a64a5f Nishanth Menon 2016-10-18  3478          
spin_lock_init(&minfo->xfer_lock);
aa276781a64a5f Nishanth Menon 2016-10-18  3479          
sema_init(&minfo->sem_xfer_count, desc->max_msgs);
aa276781a64a5f Nishanth Menon 2016-10-18  3480  
aa276781a64a5f Nishanth Menon 2016-10-18  3481          info->chan_rx = 
mbox_request_channel_byname(cl, "rx");
aa276781a64a5f Nishanth Menon 2016-10-18  3482          if 
(IS_ERR(info->chan_rx)) {
aa276781a64a5f Nishanth Menon 2016-10-18  3483                  ret = 
PTR_ERR(info->chan_rx);
aa276781a64a5f Nishanth Menon 2016-10-18  3484                  goto out;
aa276781a64a5f Nishanth Menon 2016-10-18  3485          }
aa276781a64a5f Nishanth Menon 2016-10-18  3486  
aa276781a64a5f Nishanth Menon 2016-10-18  3487          info->chan_tx = 
mbox_request_channel_byname(cl, "tx");
aa276781a64a5f Nishanth Menon 2016-10-18  3488          if 
(IS_ERR(info->chan_tx)) {
aa276781a64a5f Nishanth Menon 2016-10-18  3489                  ret = 
PTR_ERR(info->chan_tx);
aa276781a64a5f Nishanth Menon 2016-10-18  3490                  goto out;
aa276781a64a5f Nishanth Menon 2016-10-18  3491          }
aa276781a64a5f Nishanth Menon 2016-10-18  3492          ret = 
ti_sci_cmd_get_revision(info);
aa276781a64a5f Nishanth Menon 2016-10-18  3493          if (ret) {
aa276781a64a5f Nishanth Menon 2016-10-18  3494                  dev_err(dev, 
"Unable to communicate with TISCI(%d)\n", ret);
aa276781a64a5f Nishanth Menon 2016-10-18  3495                  goto out;
aa276781a64a5f Nishanth Menon 2016-10-18  3496          }
aa276781a64a5f Nishanth Menon 2016-10-18  3497  
9e7d756da7a5b0 Nishanth Menon 2016-10-18  3498          ti_sci_setup_ops(info);
9e7d756da7a5b0 Nishanth Menon 2016-10-18  3499  
912cffb4ed8612 Nishanth Menon 2016-10-18  3500          if (reboot) {
912cffb4ed8612 Nishanth Menon 2016-10-18  3501                  
info->nb.notifier_call = tisci_reboot_handler;
912cffb4ed8612 Nishanth Menon 2016-10-18  3502                  
info->nb.priority = 128;
912cffb4ed8612 Nishanth Menon 2016-10-18  3503  
912cffb4ed8612 Nishanth Menon 2016-10-18  3504                  ret = 
register_restart_handler(&info->nb);
912cffb4ed8612 Nishanth Menon 2016-10-18  3505                  if (ret) {
912cffb4ed8612 Nishanth Menon 2016-10-18  3506                          
dev_err(dev, "reboot registration fail(%d)\n", ret);
912cffb4ed8612 Nishanth Menon 2016-10-18  3507                          return 
ret;
912cffb4ed8612 Nishanth Menon 2016-10-18  3508                  }
912cffb4ed8612 Nishanth Menon 2016-10-18  3509          }
912cffb4ed8612 Nishanth Menon 2016-10-18  3510  
aa276781a64a5f Nishanth Menon 2016-10-18  3511          dev_info(dev, "ABI: 
%d.%d (firmware rev 0x%04x '%s')\n",
aa276781a64a5f Nishanth Menon 2016-10-18  3512                   
info->handle.version.abi_major, info->handle.version.abi_minor,
aa276781a64a5f Nishanth Menon 2016-10-18  3513                   
info->handle.version.firmware_revision,
aa276781a64a5f Nishanth Menon 2016-10-18  3514                   
info->handle.version.firmware_description);
aa276781a64a5f Nishanth Menon 2016-10-18  3515  
aa276781a64a5f Nishanth Menon 2016-10-18  3516          
mutex_lock(&ti_sci_list_mutex);
aa276781a64a5f Nishanth Menon 2016-10-18  3517          
list_add_tail(&info->node, &ti_sci_list);
aa276781a64a5f Nishanth Menon 2016-10-18  3518          
mutex_unlock(&ti_sci_list_mutex);
aa276781a64a5f Nishanth Menon 2016-10-18  3519  
aa276781a64a5f Nishanth Menon 2016-10-18 @3520          return 
of_platform_populate(dev->of_node, NULL, NULL, dev);
aa276781a64a5f Nishanth Menon 2016-10-18  3521  out:
aa276781a64a5f Nishanth Menon 2016-10-18  3522          if 
(!IS_ERR(info->chan_tx))
aa276781a64a5f Nishanth Menon 2016-10-18  3523                  
mbox_free_channel(info->chan_tx);
aa276781a64a5f Nishanth Menon 2016-10-18  3524          if 
(!IS_ERR(info->chan_rx))
aa276781a64a5f Nishanth Menon 2016-10-18  3525                  
mbox_free_channel(info->chan_rx);
aa276781a64a5f Nishanth Menon 2016-10-18  3526          debugfs_remove(info->d);
aa276781a64a5f Nishanth Menon 2016-10-18  3527          return ret;
aa276781a64a5f Nishanth Menon 2016-10-18  3528  }
aa276781a64a5f Nishanth Menon 2016-10-18  3529  
aa276781a64a5f Nishanth Menon 2016-10-18  3530  static int ti_sci_remove(struct 
platform_device *pdev)
aa276781a64a5f Nishanth Menon 2016-10-18  3531  {
aa276781a64a5f Nishanth Menon 2016-10-18  3532          struct ti_sci_info 
*info;
aa276781a64a5f Nishanth Menon 2016-10-18  3533          struct device *dev = 
&pdev->dev;
aa276781a64a5f Nishanth Menon 2016-10-18  3534          int ret = 0;
aa276781a64a5f Nishanth Menon 2016-10-18  3535  
aa276781a64a5f Nishanth Menon 2016-10-18 @3536          
of_platform_depopulate(dev);
aa276781a64a5f Nishanth Menon 2016-10-18  3537  
aa276781a64a5f Nishanth Menon 2016-10-18  3538          info = 
platform_get_drvdata(pdev);
aa276781a64a5f Nishanth Menon 2016-10-18  3539  
912cffb4ed8612 Nishanth Menon 2016-10-18  3540          if 
(info->nb.notifier_call)
912cffb4ed8612 Nishanth Menon 2016-10-18  3541                  
unregister_restart_handler(&info->nb);
912cffb4ed8612 Nishanth Menon 2016-10-18  3542  
aa276781a64a5f Nishanth Menon 2016-10-18  3543          
mutex_lock(&ti_sci_list_mutex);
aa276781a64a5f Nishanth Menon 2016-10-18  3544          if (info->users)
aa276781a64a5f Nishanth Menon 2016-10-18  3545                  ret = -EBUSY;
aa276781a64a5f Nishanth Menon 2016-10-18  3546          else
aa276781a64a5f Nishanth Menon 2016-10-18  3547                  
list_del(&info->node);
aa276781a64a5f Nishanth Menon 2016-10-18  3548          
mutex_unlock(&ti_sci_list_mutex);
aa276781a64a5f Nishanth Menon 2016-10-18  3549  
aa276781a64a5f Nishanth Menon 2016-10-18  3550          if (!ret) {
aa276781a64a5f Nishanth Menon 2016-10-18  3551                  
ti_sci_debugfs_destroy(pdev, info);
aa276781a64a5f Nishanth Menon 2016-10-18  3552  
aa276781a64a5f Nishanth Menon 2016-10-18  3553                  /* Safe to free 
channels since no more users */
aa276781a64a5f Nishanth Menon 2016-10-18  3554                  
mbox_free_channel(info->chan_tx);
aa276781a64a5f Nishanth Menon 2016-10-18  3555                  
mbox_free_channel(info->chan_rx);
aa276781a64a5f Nishanth Menon 2016-10-18  3556          }
aa276781a64a5f Nishanth Menon 2016-10-18  3557  
aa276781a64a5f Nishanth Menon 2016-10-18  3558          return ret;
aa276781a64a5f Nishanth Menon 2016-10-18  3559  }
aa276781a64a5f Nishanth Menon 2016-10-18  3560  

:::::: The code at line 3520 was first introduced by commit
:::::: aa276781a64a5f15ecc21e920960c5b1f84e5fee firmware: Add basic support for 
TI System Control Interface (TI-SCI) protocol

:::::: TO: Nishanth Menon <n...@ti.com>
:::::: CC: Tero Kristo <t-kri...@ti.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to