CC: [email protected] CC: [email protected] BCC: [email protected] CC: [email protected] TO: "Łukasz Stelmach" <[email protected]> CC: Jakub Kicinski <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: fe27d189e3f42e31d3c8223d5daed7285e334c5e commit: a97c69ba4f30e46abb9cc7be8b98227cb468fdf9 net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver date: 7 months ago :::::: branch date: 5 hours ago :::::: commit date: 7 months ago config: riscv-randconfig-c006-20220427 (https://download.01.org/0day-ci/archive/20220506/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 1cddcfdc3c683b393df1a5c9063252eb60e52818) 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 riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a97c69ba4f30e46abb9cc7be8b98227cb468fdf9 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout a97c69ba4f30e46abb9cc7be8b98227cb468fdf9 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:455:2: note: Assuming the condition is false brcmf_err("fail!\n"); ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h:49:7: note: expanded from macro 'brcmf_err' net_ratelimit()) \ ^~~~~~~~~~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:455:2: note: Taking false branch brcmf_err("fail!\n"); ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h:47:3: note: expanded from macro 'brcmf_err' if (IS_ENABLED(CONFIG_BRCMDBG) || \ ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:455:2: note: Loop condition is false. Exiting loop brcmf_err("fail!\n"); ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h:46:2: note: expanded from macro 'brcmf_err' do { \ ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:456:2: note: Loop condition is true. Entering loop body while (!list_empty(q)) { ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:457:9: note: Left side of '&&' is false req = list_entry(q->next, struct brcmf_usbreq, list); ^ include/linux/list.h:511:2: note: expanded from macro 'list_entry' container_of(ptr, type, member) ^ include/linux/kernel.h:495:61: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:457:9: note: Taking false branch req = list_entry(q->next, struct brcmf_usbreq, list); ^ include/linux/list.h:511:2: note: expanded from macro 'list_entry' container_of(ptr, type, member) ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:457:9: note: Loop condition is false. Exiting loop req = list_entry(q->next, struct brcmf_usbreq, list); ^ include/linux/list.h:511:2: note: expanded from macro 'list_entry' container_of(ptr, type, member) ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert' do { \ ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:458:7: note: Assuming 'req' is null if (req) ^~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:458:3: note: Taking false branch if (req) ^ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:460:12: note: Passing null pointer value via 1st parameter 'entry' list_del(q->next); ^~~~~~~ drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:460:3: note: Calling 'list_del' list_del(q->next); ^~~~~~~~~~~~~~~~~ include/linux/list.h:146:19: note: Passing null pointer value via 1st parameter 'entry' __list_del_entry(entry); ^~~~~ include/linux/list.h:146:2: note: Calling '__list_del_entry' __list_del_entry(entry); ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:132:2: note: Taking false branch if (!__list_del_entry_valid(entry)) ^ include/linux/list.h:135:13: note: Access to field 'prev' results in a dereference of a null pointer (loaded from variable 'entry') __list_del(entry->prev, entry->next); ^~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. >> drivers/net/ethernet/asix/ax88796c_main.c:548:21: warning: Value stored to >> 'ndev' during its initialization is never read >> [clang-analyzer-deadcode.DeadStores] struct net_device *ndev = ax_local->ndev; ^~~~ ~~~~~~~~~~~~~~ drivers/net/ethernet/asix/ax88796c_main.c:548:21: note: Value stored to 'ndev' during its initialization is never read struct net_device *ndev = ax_local->ndev; ^~~~ ~~~~~~~~~~~~~~ include/asm-generic/bitops/non-atomic.h:118:16: warning: Array access (from variable 'addr') results in a null pointer dereference [clang-analyzer-core.NullDereference] return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1))); ^ drivers/net/ethernet/asix/ax88796c_main.c:801:6: note: Assuming 'ret' is 0 if (ret) { ^~~ drivers/net/ethernet/asix/ax88796c_main.c:801:2: note: Taking false branch if (ret) { ^ drivers/net/ethernet/asix/ax88796c_main.c:810:6: note: Assuming 'ret' is >= 0 if (ret < 0) { ^~~~~~~ drivers/net/ethernet/asix/ax88796c_main.c:810:2: note: Taking false branch if (ret < 0) { ^ drivers/net/ethernet/asix/ax88796c_main.c:851:6: note: Assuming the condition is false if (ax_local->phydev->advertising && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/asix/ax88796c_main.c:851:36: note: Left side of '&&' is false if (ax_local->phydev->advertising && ^ drivers/net/ethernet/asix/ax88796c_main.c:859:5: note: Passing null pointer value via 2nd parameter 'addr' ax_local->phydev->advertising) ? AX_FC_RX : 0; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/asix/ax88796c_main.c:858:8: note: Calling 'linkmode_test_bit' fc |= linkmode_test_bit(ETHTOOL_LINK_MODE_Pause_BIT, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/linkmode.h:76:22: note: Passing null pointer value via 2nd parameter 'addr' return test_bit(nr, addr); ^~~~ include/linux/linkmode.h:76:9: note: Calling 'arch_test_bit' return test_bit(nr, addr); ^ include/asm-generic/bitops/non-atomic.h:120:18: note: expanded from macro 'test_bit' #define test_bit arch_test_bit ^ include/asm-generic/bitops/non-atomic.h:118:16: note: Array access (from variable 'addr') results in a null pointer dereference return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1))); ^~~~ Suppressed 5 warnings (4 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. drivers/net/ethernet/cadence/macb_main.c:1507:13: warning: Access to field 'addr' results in a dereference of a null pointer (loaded from variable 'desc') [clang-analyzer-core.NullDereference] desc->addr |= MACB_BIT(RX_WRAP); ^ drivers/net/ethernet/cadence/macb_main.c:2438:2: note: Calling 'macb_init_rx_ring' macb_init_rx_ring(&bp->queues[0]); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cadence/macb_main.c:1497:2: note: 'desc' initialized to a null pointer value struct macb_dma_desc *desc = NULL; ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cadence/macb_main.c:1501:14: note: Assuming 'i' is >= field 'rx_ring_size' for (i = 0; i < bp->rx_ring_size; i++) { ^~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cadence/macb_main.c:1501:2: note: Loop condition is false. Execution continues on line 1507 for (i = 0; i < bp->rx_ring_size; i++) { ^ drivers/net/ethernet/cadence/macb_main.c:1507:13: note: Access to field 'addr' results in a dereference of a null pointer (loaded from variable 'desc') desc->addr |= MACB_BIT(RX_WRAP); ~~~~ ^ drivers/net/ethernet/cadence/macb_main.c:2421:14: warning: Access to field 'ctrl' results in a dereference of a null pointer (loaded from variable 'desc') [clang-analyzer-core.NullDereference] desc->ctrl |= MACB_BIT(TX_WRAP); ~~~~ ^ drivers/net/ethernet/cadence/macb_main.c:2411:2: note: 'desc' initialized to a null pointer value struct macb_dma_desc *desc = NULL; ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cadence/macb_main.c:2415:34: note: Assuming 'q' is < field 'num_queues' for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue) { ^~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cadence/macb_main.c:2415:2: note: Loop condition is true. Entering loop body for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue) { ^ drivers/net/ethernet/cadence/macb_main.c:2416:15: note: Assuming 'i' is >= field 'tx_ring_size' for (i = 0; i < bp->tx_ring_size; i++) { ^~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cadence/macb_main.c:2416:3: note: Loop condition is false. Execution continues on line 2421 for (i = 0; i < bp->tx_ring_size; i++) { ^ drivers/net/ethernet/cadence/macb_main.c:2421:14: note: Access to field 'ctrl' results in a dereference of a null pointer (loaded from variable 'desc') desc->ctrl |= MACB_BIT(TX_WRAP); ~~~~ ^ drivers/net/ethernet/cadence/macb_main.c:2447:13: warning: Access to field 'ctrl' results in a dereference of a null pointer (loaded from variable 'desc') [clang-analyzer-core.NullDereference] desc->ctrl |= MACB_BIT(TX_WRAP); ~~~~ ^ drivers/net/ethernet/cadence/macb_main.c:2436:2: note: 'desc' initialized to a null pointer value struct macb_dma_desc *desc = NULL; ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cadence/macb_main.c:2440:14: note: Assuming 'i' is >= field 'tx_ring_size' for (i = 0; i < bp->tx_ring_size; i++) { vim +/ndev +548 drivers/net/ethernet/asix/ax88796c_main.c a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 545 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 546 static int ax88796c_process_isr(struct ax88796c_device *ax_local) a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 547 { a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 @548 struct net_device *ndev = ax_local->ndev; a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 549 int todo = 0; a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 550 u16 isr; a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 551 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 552 lockdep_assert_held(&ax_local->spi_lock); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 553 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 554 isr = AX_READ(&ax_local->ax_spi, P0_ISR); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 555 AX_WRITE(&ax_local->ax_spi, isr, P0_ISR); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 556 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 557 netif_dbg(ax_local, intr, ndev, " ISR 0x%04x\n", isr); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 558 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 559 if (isr & ISR_TXERR) { a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 560 netif_dbg(ax_local, intr, ndev, " TXERR interrupt\n"); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 561 AX_WRITE(&ax_local->ax_spi, TXNR_TXB_REINIT, P0_TSNR); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 562 ax_local->seq_num = 0x1f; a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 563 } a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 564 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 565 if (isr & ISR_TXPAGES) { a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 566 netif_dbg(ax_local, intr, ndev, " TXPAGES interrupt\n"); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 567 set_bit(EVENT_TX, &ax_local->flags); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 568 } a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 569 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 570 if (isr & ISR_LINK) { a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 571 netif_dbg(ax_local, intr, ndev, " Link change interrupt\n"); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 572 phy_mac_interrupt(ax_local->ndev->phydev); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 573 } a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 574 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 575 if (isr & ISR_RXPKT) { a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 576 netif_dbg(ax_local, intr, ndev, " RX interrupt\n"); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 577 todo = ax88796c_receive(ax_local->ndev); a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 578 } a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 579 a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 580 return todo; a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 581 } a97c69ba4f30e4 Łukasz Stelmach 2021-10-20 582 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
