[jkirsher-net-queue:dev-queue 5/5] drivers/net/ethernet/intel/e1000e/netdev.c:7604:7: warning: address of function 'down' will always evaluate to 'true'

0 views
Skip to first unread message

kbuild test robot

unread,
Dec 21, 2019, 2:37:06 PM12/21/19
to kbu...@lists.01.org, Nick Desaulniers, clang-bu...@googlegroups.com
CC: kbuil...@lists.01.org
CC: intel-w...@lists.osuosl.org
TO: Jeff Kirsher <jeffrey....@intel.com>

tree: https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue.git dev-queue
head: 831655569c70675c1622f8c52ed271dc7fdce42f
commit: 831655569c70675c1622f8c52ed271dc7fdce42f [5/5] e1000e: Revert "e1000e: Make watchdog use delayed work"
config: arm64-defconfig (attached as .config)
compiler: clang version 10.0.0 (git://gitmirror/llvm_project 3ced23976aa8a86a17017c87821c873b4ca80bc2)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 831655569c70675c1622f8c52ed271dc7fdce42f
# save the attached .config to linux build tree
make.cross ARCH=arm64

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

All warnings (new ones prefixed by >>):

>> drivers/net/ethernet/intel/e1000e/netdev.c:7604:7: warning: address of function 'down' will always evaluate to 'true' [-Wpointer-bool-conversion]
if (!down)
~^~~~
drivers/net/ethernet/intel/e1000e/netdev.c:7604:7: note: prefix with the address-of operator to silence this warning
if (!down)
^
&
1 warning generated.

vim +7604 drivers/net/ethernet/intel/e1000e/netdev.c

7584
7585 /**
7586 * e1000_remove - Device Removal Routine
7587 * @pdev: PCI device information struct
7588 *
7589 * e1000_remove is called by the PCI subsystem to alert the driver
7590 * that it should release a PCI device. The could be caused by a
7591 * Hot-Plug event, or because the driver is going to be removed from
7592 * memory.
7593 **/
7594 static void e1000_remove(struct pci_dev *pdev)
7595 {
7596 struct net_device *netdev = pci_get_drvdata(pdev);
7597 struct e1000_adapter *adapter = netdev_priv(netdev);
7598
7599 e1000e_ptp_remove(adapter);
7600
7601 /* The timers may be rescheduled, so explicitly disable them
7602 * from being rescheduled.
7603 */
> 7604 if (!down)
7605 set_bit(__E1000_DOWN, &adapter->state);
7606 del_timer_sync(&adapter->watchdog_timer);
7607 del_timer_sync(&adapter->phy_info_timer);
7608
7609 cancel_work_sync(&adapter->reset_task);
7610 cancel_work_sync(&adapter->watchdog_task);
7611 cancel_work_sync(&adapter->downshift_task);
7612 cancel_work_sync(&adapter->update_phy_task);
7613 cancel_work_sync(&adapter->print_hang_task);
7614
7615 if (adapter->flags & FLAG_HAS_HW_TIMESTAMP) {
7616 cancel_work_sync(&adapter->tx_hwtstamp_work);
7617 if (adapter->tx_hwtstamp_skb) {
7618 dev_consume_skb_any(adapter->tx_hwtstamp_skb);
7619 adapter->tx_hwtstamp_skb = NULL;
7620 }
7621 }
7622
7623 unregister_netdev(netdev);
7624
7625 if (pci_dev_run_wake(pdev))
7626 pm_runtime_get_noresume(&pdev->dev);
7627
7628 /* Release control of h/w to f/w. If f/w is AMT enabled, this
7629 * would have already happened in close and is redundant.
7630 */
7631 e1000e_release_hw_control(adapter);
7632
7633 e1000e_reset_interrupt_capability(adapter);
7634 kfree(adapter->tx_ring);
7635 kfree(adapter->rx_ring);
7636
7637 iounmap(adapter->hw.hw_addr);
7638 if ((adapter->hw.flash_address) &&
7639 (adapter->hw.mac.type < e1000_pch_spt))
7640 iounmap(adapter->hw.flash_address);
7641 pci_release_mem_regions(pdev);
7642
7643 free_netdev(netdev);
7644
7645 /* AER disable */
7646 pci_disable_pcie_error_reporting(pdev);
7647
7648 pci_disable_device(pdev);
7649 }
7650

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuil...@lists.01.org Intel Corporation
.config.gz

Nathan Chancellor

unread,
Dec 21, 2019, 10:25:45 PM12/21/19
to Jeff Kirsher, kbu...@lists.01.org, Nick Desaulniers, clang-bu...@googlegroups.com, kbuild test robot, net...@vger.kernel.org
Hi Jeff,

We received this build report from the 0day team with clang, seems
legit. Mind taking a look into it?

Cheers,
Nathan
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-li...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/201912220313.FgL3fS3o%25lkp%40intel.com.


Alexander Duyck

unread,
Dec 22, 2019, 11:52:12 AM12/22/19
to Nathan Chancellor, Jeff Kirsher, kbu...@lists.01.org, Nick Desaulniers, clang-bu...@googlegroups.com, kbuild test robot, Netdev
Yes, it looks like the patch called out below reverted part of my earlier patch:
commit daee5598e491d8d3979bd4ad6c447d89ce57b446
Author: Alexander Duyck <alexande...@linux.intel.com>
Date: Fri Oct 11 08:34:59 2019 -0700

e1000e: Drop unnecessary __E1000_DOWN bit twiddling

Since we no longer check for __E1000_DOWN in e1000e_close we can drop the
spot where we were restoring the bit. This saves us a bit of unnecessary
complexity.

Signed-off-by: Alexander Duyck <alexande...@linux.intel.com>
Tested-by: Aaron Brown <aaron....@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey....@intel.com>
Reply all
Reply to author
Forward
0 new messages