Hi Zong-Zhe, FYI, the error/warning still remains. tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 23ee3e4e5bd27bdbc0f1785eef7209ce872794c7 commit: 72f256c2b948622cc45ff8bc0456dd6039d8fe36 rtw88: extract: export symbols about pci interface date: 10 weeks ago config: arc-randconfig-r026-20200725 (attached as .config) compiler: arc-elf-gcc (GCC) 9.3.0 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 git checkout 72f256c2b948622cc45ff8bc0456dd6039d8fe36 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/net/wireless/realtek/rtw88/pci.c:1477:5: warning: no previous prototype for 'rtw_pci_probe' [-Wmissing-prototypes] 1477 | int rtw_pci_probe(struct pci_dev *pdev, | ^~~~~~~~~~~~~ >> drivers/net/wireless/realtek/rtw88/pci.c:1557:6: warning: no previous prototype for 'rtw_pci_remove' [-Wmissing-prototypes] 1557 | void rtw_pci_remove(struct pci_dev *pdev) | ^~~~~~~~~~~~~~ >> drivers/net/wireless/realtek/rtw88/pci.c:1579:6: warning: no previous prototype for 'rtw_pci_shutdown' [-Wmissing-prototypes] 1579 | void rtw_pci_shutdown(struct pci_dev *pdev) | ^~~~~~~~~~~~~~~~ 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-all@lists.01.org