Hi Zong-Zhe,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   729e3d091984487f7aa1ebfabfe594e5b317ed0f
commit: 72f256c2b948622cc45ff8bc0456dd6039d8fe36 rtw88: extract: export symbols 
about pci interface
date:   4 months ago
config: x86_64-randconfig-a014-20200912 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 
45d0343900d3005d1d00cbb1a87c419c085dec71)
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
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        git checkout 72f256c2b948622cc45ff8bc0456dd6039d8fe36
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All warnings (new ones prefixed by >>):

>> drivers/net/wireless/realtek/rtw88/pci.c:1477:5: warning: no previous 
>> prototype for function 'rtw_pci_probe' [-Wmissing-prototypes]
   int rtw_pci_probe(struct pci_dev *pdev,
       ^
   drivers/net/wireless/realtek/rtw88/pci.c:1477:1: note: declare 'static' if 
the function is not intended to be used outside of this translation unit
   int rtw_pci_probe(struct pci_dev *pdev,
   ^
   static 
>> drivers/net/wireless/realtek/rtw88/pci.c:1557:6: warning: no previous 
>> prototype for function 'rtw_pci_remove' [-Wmissing-prototypes]
   void rtw_pci_remove(struct pci_dev *pdev)
        ^
   drivers/net/wireless/realtek/rtw88/pci.c:1557:1: note: declare 'static' if 
the function is not intended to be used outside of this translation unit
   void rtw_pci_remove(struct pci_dev *pdev)
   ^
   static 
>> drivers/net/wireless/realtek/rtw88/pci.c:1579:6: warning: no previous 
>> prototype for function 'rtw_pci_shutdown' [-Wmissing-prototypes]
   void rtw_pci_shutdown(struct pci_dev *pdev)
        ^
   drivers/net/wireless/realtek/rtw88/pci.c:1579:1: note: declare 'static' if 
the function is not intended to be used outside of this translation unit
   void rtw_pci_shutdown(struct pci_dev *pdev)
   ^
   static 
   drivers/net/wireless/realtek/rtw88/pci.c:88:21: warning: unused function 
'rtw_pci_get_tx_desc' [-Wunused-function]
   static inline void *rtw_pci_get_tx_desc(struct rtw_pci_tx_ring *tx_ring, u8 
idx)
                       ^
   4 warnings generated.

# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=72f256c2b948622cc45ff8bc0456dd6039d8fe36
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 72f256c2b948622cc45ff8bc0456dd6039d8fe36
vim +/rtw_pci_probe +1477 drivers/net/wireless/realtek/rtw88/pci.c

  1476  
> 1477  int rtw_pci_probe(struct pci_dev *pdev,
  1478                    const struct pci_device_id *id)
  1479  {
  1480          struct ieee80211_hw *hw;
  1481          struct rtw_dev *rtwdev;
  1482          int drv_data_size;
  1483          int ret;
  1484  
  1485          drv_data_size = sizeof(struct rtw_dev) + sizeof(struct rtw_pci);
  1486          hw = ieee80211_alloc_hw(drv_data_size, &rtw_ops);
  1487          if (!hw) {
  1488                  dev_err(&pdev->dev, "failed to allocate hw\n");
  1489                  return -ENOMEM;
  1490          }
  1491  
  1492          rtwdev = hw->priv;
  1493          rtwdev->hw = hw;
  1494          rtwdev->dev = &pdev->dev;
  1495          rtwdev->chip = (struct rtw_chip_info *)id->driver_data;
  1496          rtwdev->hci.ops = &rtw_pci_ops;
  1497          rtwdev->hci.type = RTW_HCI_TYPE_PCIE;
  1498  
  1499          ret = rtw_core_init(rtwdev);
  1500          if (ret)
  1501                  goto err_release_hw;
  1502  
  1503          rtw_dbg(rtwdev, RTW_DBG_PCI,
  1504                  "rtw88 pci probe: vendor=0x%4.04X device=0x%4.04X 
rev=%d\n",
  1505                  pdev->vendor, pdev->device, pdev->revision);
  1506  
  1507          ret = rtw_pci_claim(rtwdev, pdev);
  1508          if (ret) {
  1509                  rtw_err(rtwdev, "failed to claim pci device\n");
  1510                  goto err_deinit_core;
  1511          }
  1512  
  1513          ret = rtw_pci_setup_resource(rtwdev, pdev);
  1514          if (ret) {
  1515                  rtw_err(rtwdev, "failed to setup pci resources\n");
  1516                  goto err_pci_declaim;
  1517          }
  1518  
  1519          ret = rtw_chip_info_setup(rtwdev);
  1520          if (ret) {
  1521                  rtw_err(rtwdev, "failed to setup chip information\n");
  1522                  goto err_destroy_pci;
  1523          }
  1524  
  1525          rtw_pci_phy_cfg(rtwdev);
  1526  
  1527          ret = rtw_register_hw(rtwdev, hw);
  1528          if (ret) {
  1529                  rtw_err(rtwdev, "failed to register hw\n");
  1530                  goto err_destroy_pci;
  1531          }
  1532  
  1533          ret = rtw_pci_request_irq(rtwdev, pdev);
  1534          if (ret) {
  1535                  ieee80211_unregister_hw(hw);
  1536                  goto err_destroy_pci;
  1537          }
  1538  
  1539          return 0;
  1540  
  1541  err_destroy_pci:
  1542          rtw_pci_destroy(rtwdev, pdev);
  1543  
  1544  err_pci_declaim:
  1545          rtw_pci_declaim(rtwdev, pdev);
  1546  
  1547  err_deinit_core:
  1548          rtw_core_deinit(rtwdev);
  1549  
  1550  err_release_hw:
  1551          ieee80211_free_hw(hw);
  1552  
  1553          return ret;
  1554  }
  1555  EXPORT_SYMBOL(rtw_pci_probe);
  1556  
> 1557  void rtw_pci_remove(struct pci_dev *pdev)
  1558  {
  1559          struct ieee80211_hw *hw = pci_get_drvdata(pdev);
  1560          struct rtw_dev *rtwdev;
  1561          struct rtw_pci *rtwpci;
  1562  
  1563          if (!hw)
  1564                  return;
  1565  
  1566          rtwdev = hw->priv;
  1567          rtwpci = (struct rtw_pci *)rtwdev->priv;
  1568  
  1569          rtw_unregister_hw(rtwdev, hw);
  1570          rtw_pci_disable_interrupt(rtwdev, rtwpci);
  1571          rtw_pci_destroy(rtwdev, pdev);
  1572          rtw_pci_declaim(rtwdev, pdev);
  1573          rtw_pci_free_irq(rtwdev, pdev);
  1574          rtw_core_deinit(rtwdev);
  1575          ieee80211_free_hw(hw);
  1576  }
  1577  EXPORT_SYMBOL(rtw_pci_remove);
  1578  
> 1579  void rtw_pci_shutdown(struct pci_dev *pdev)
  1580  {
  1581          struct ieee80211_hw *hw = pci_get_drvdata(pdev);
  1582          struct rtw_dev *rtwdev;
  1583          struct rtw_chip_info *chip;
  1584  
  1585          if (!hw)
  1586                  return;
  1587  
  1588          rtwdev = hw->priv;
  1589          chip = rtwdev->chip;
  1590  
  1591          if (chip->ops->shutdown)
  1592                  chip->ops->shutdown(rtwdev);
  1593  }
  1594  EXPORT_SYMBOL(rtw_pci_shutdown);
  1595  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to