tree:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ef2e9a563b0cd7965e2a1263125dcbb1c86aa6cc
commit: ba0fbe236fb8a7b992e82d6eafb03a600f5eba43 rtw88: extract: make
8822c an individual kernel module
date: 4 months ago
config: i386-randconfig-r034-20200913 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
git checkout ba0fbe236fb8a7b992e82d6eafb03a600f5eba43
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
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)
| ^~~~~~~~~~~~~~~~
#
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
a0fbe236fb8a7b992e82d6eafb03a600f5eba43
git remote add linus
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout ba0fbe236fb8a7b992e82d6eafb03a600f5eba43
vim +/rtw_pci_probe +1477 drivers/net/wireless/realtek/rtw88/pci.c
79066903454b0fe Yu-Yen Ting 2019-09-03 1476
72f256c2b948622 Zong-Zhe Yang 2020-05-15 @1477 int
rtw_pci_probe(struct pci_dev *pdev,
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1478 const
struct pci_device_id *id)
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1479 {
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1480 struct
ieee80211_hw *hw;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1481 struct rtw_dev
*rtwdev;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1482 int
drv_data_size;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1483 int ret;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1484
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1485 drv_data_size
= sizeof(struct rtw_dev) + sizeof(struct rtw_pci);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1486 hw =
ieee80211_alloc_hw(drv_data_size, &rtw_ops);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1487 if (!hw) {
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1488
dev_err(&pdev->dev, "failed to allocate hw\n");
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1489 return
-ENOMEM;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1490 }
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1491
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1492 rtwdev =
hw->priv;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1493 rtwdev->hw =
hw;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1494 rtwdev->dev =
&pdev->dev;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1495 rtwdev->chip =
(struct rtw_chip_info *)id->driver_data;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1496
rtwdev->hci.ops = &rtw_pci_ops;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1497
rtwdev->hci.type = RTW_HCI_TYPE_PCIE;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1498
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1499 ret =
rtw_core_init(rtwdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1500 if (ret)
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1501 goto
err_release_hw;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1502
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1503
rtw_dbg(rtwdev, RTW_DBG_PCI,
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1504 "rtw88 pci
probe: vendor=0x%4.04X device=0x%4.04X rev=%d\n",
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1505
pdev->vendor, pdev->device, pdev->revision);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1506
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1507 ret =
rtw_pci_claim(rtwdev, pdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1508 if (ret) {
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1509
rtw_err(rtwdev, "failed to claim pci device\n");
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1510 goto
err_deinit_core;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1511 }
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1512
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1513 ret =
rtw_pci_setup_resource(rtwdev, pdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1514 if (ret) {
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1515
rtw_err(rtwdev, "failed to setup pci resources\n");
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1516 goto
err_pci_declaim;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1517 }
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1518
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1519 ret =
rtw_chip_info_setup(rtwdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1520 if (ret) {
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1521
rtw_err(rtwdev, "failed to setup chip information\n");
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1522 goto
err_destroy_pci;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1523 }
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1524
474264d5a6b7db4 Yan-Hsuan Chuang 2019-10-08 1525
rtw_pci_phy_cfg(rtwdev);
474264d5a6b7db4 Yan-Hsuan Chuang 2019-10-08 1526
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1527 ret =
rtw_register_hw(rtwdev, hw);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1528 if (ret) {
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1529
rtw_err(rtwdev, "failed to register hw\n");
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1530 goto
err_destroy_pci;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1531 }
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1532
79066903454b0fe Yu-Yen Ting 2019-09-03 1533 ret =
rtw_pci_request_irq(rtwdev, pdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1534 if (ret) {
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1535
ieee80211_unregister_hw(hw);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1536 goto
err_destroy_pci;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1537 }
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1538
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1539 return 0;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1540 e3037485c68ec1a
Yan-Hsuan Chuang 2019-04-26 1541 err_destroy_pci:
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1542
rtw_pci_destroy(rtwdev, pdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1543 e3037485c68ec1a
Yan-Hsuan Chuang 2019-04-26 1544 err_pci_declaim:
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1545
rtw_pci_declaim(rtwdev, pdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1546 e3037485c68ec1a
Yan-Hsuan Chuang 2019-04-26 1547 err_deinit_core:
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1548
rtw_core_deinit(rtwdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1549 e3037485c68ec1a
Yan-Hsuan Chuang 2019-04-26 1550 err_release_hw:
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1551
ieee80211_free_hw(hw);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1552
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1553 return ret;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1554 }
72f256c2b948622 Zong-Zhe Yang 2020-05-15 1555
EXPORT_SYMBOL(rtw_pci_probe);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1556
72f256c2b948622 Zong-Zhe Yang 2020-05-15 @1557 void
rtw_pci_remove(struct pci_dev *pdev)
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1558 {
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1559 struct
ieee80211_hw *hw = pci_get_drvdata(pdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1560 struct rtw_dev
*rtwdev;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1561 struct rtw_pci
*rtwpci;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1562
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1563 if (!hw)
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1564 return;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1565
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1566 rtwdev =
hw->priv;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1567 rtwpci = (struct
rtw_pci *)rtwdev->priv;
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1568
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1569
rtw_unregister_hw(rtwdev, hw);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1570
rtw_pci_disable_interrupt(rtwdev, rtwpci);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1571
rtw_pci_destroy(rtwdev, pdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1572
rtw_pci_declaim(rtwdev, pdev);
79066903454b0fe Yu-Yen Ting 2019-09-03 1573
rtw_pci_free_irq(rtwdev, pdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1574
rtw_core_deinit(rtwdev);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1575
ieee80211_free_hw(hw);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1576 }
72f256c2b948622 Zong-Zhe Yang 2020-05-15 1577
EXPORT_SYMBOL(rtw_pci_remove);
e3037485c68ec1a Yan-Hsuan Chuang 2019-04-26 1578
72f256c2b948622 Zong-Zhe Yang 2020-05-15 @1579 void
rtw_pci_shutdown(struct pci_dev *pdev)
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1580 {
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1581 struct
ieee80211_hw *hw = pci_get_drvdata(pdev);
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1582 struct rtw_dev
*rtwdev;
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1583 struct
rtw_chip_info *chip;
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1584
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1585 if (!hw)
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1586 return;
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1587
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1588 rtwdev =
hw->priv;
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1589 chip =
rtwdev->chip;
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1590
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1591 if
(chip->ops->shutdown)
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1592
chip->ops->shutdown(rtwdev);
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1593 }
72f256c2b948622 Zong-Zhe Yang 2020-05-15 1594
EXPORT_SYMBOL(rtw_pci_shutdown);
05202746ed70ea9 Ping-Ke Shih 2020-05-12 1595
:::::: The code at line 1477 was first introduced by commit
:::::: 72f256c2b948622cc45ff8bc0456dd6039d8fe36 rtw88: extract: export
symbols about pci interface
:::::: TO: Zong-Zhe Yang <kevin_yang(a)realtek.com>
:::::: CC: Kalle Valo <kvalo(a)codeaurora.org>
---
Hi Kalle,
The exported function is used by the following patchset.
So this is a false alarm.
Thanks
Yen-Hsuan
> 0-DAY CI Kernel Test Service, Intel Corporation
>