* drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1799:9: sparse: sparse: context imbalance in 'netxen_process_cmd_ring' - wrong count at exit
@ 2021-08-28 13:20 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-08-28 13:20 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 38645 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 64b4fc45bea6f4faa843d2f97ff51665280efee1
commit: d991bb1c8da842a2a0b9dc83b1005e655783f861 include/linux/compiler-gcc.h: sparse can do constant folding of __builtin_bswap*()
date: 4 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 4 months ago
config: powerpc64-randconfig-s031-20210826 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-348-gf0e6938b-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d991bb1c8da842a2a0b9dc83b1005e655783f861
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d991bb1c8da842a2a0b9dc83b1005e655783f861
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:571:25: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:574:38: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:573:31: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:573:62: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le32 [usertype] offs @@ got unsigned int @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:573:62: sparse: expected restricted __le32 [usertype] offs
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:573:62: sparse: got unsigned int
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:575:35: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:577:21: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:578:66: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:601:54: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:601:64: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:601:20: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:615:22: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:627:63: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:627:26: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:626:20: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:633:18: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:633:55: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:632:16: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:636:21: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:636:50: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:650:22: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:662:63: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:662:26: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:661:20: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:668:18: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:668:55: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:667:16: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:670:21: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:670:50: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:697:55: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:697:65: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:697:20: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:703:25: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:710:38: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:709:24: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:709:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] offs @@ got unsigned int @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:709:22: sparse: expected restricted __le32 [usertype] offs
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:709:22: sparse: got unsigned int
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:711:25: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:712:32: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:717:33: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:718:62: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:766:19: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:766:19: sparse: sparse: incorrect type in initializer (different base types) @@ expected int idx @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:766:19: sparse: expected int idx
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:766:19: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:777:26: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:776:16: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:776:14: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] offs @@ got unsigned int @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:776:14: sparse: expected restricted __le32 [usertype] offs
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:776:14: sparse: got unsigned int
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:779:48: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:788:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] offs @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:788:22: sparse: expected unsigned int [usertype] offs
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:788:22: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:801:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] offs @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:801:22: sparse: expected unsigned int [usertype] offs
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:801:22: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:833:38: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:834:33: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:847:33: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:847:24: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:847:48: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:847:45: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted __le32 @@ got unsigned int @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:847:45: sparse: expected restricted __le32
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:847:45: sparse: got unsigned int
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:860:28: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:862:25: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:862:45: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:863:58: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:862:70: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted __le32 @@ got unsigned int @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:862:70: sparse: expected restricted __le32
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:862:70: sparse: got unsigned int
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:911:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] val @@ got restricted __le32 @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:911:21: sparse: expected unsigned int [usertype] val
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:911:21: sparse: got restricted __le32
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:999:72: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned long long [usertype] @@ got restricted __le64 [assigned] [usertype] data @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:999:72: sparse: expected unsigned long long [usertype]
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:999:72: sparse: got restricted __le64 [assigned] [usertype] data
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1014:60: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned long long [usertype] @@ got restricted __le64 [assigned] [usertype] data @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1014:60: sparse: expected unsigned long long [usertype]
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1014:60: sparse: got restricted __le64 [assigned] [usertype] data
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1025:60: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned long long [usertype] @@ got restricted __le64 [assigned] [usertype] data @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1025:60: sparse: expected unsigned long long [usertype]
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1025:60: sparse: got restricted __le64 [assigned] [usertype] data
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1099:23: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1099:23: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1099:23: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1123:24: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1123:24: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1123:24: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1123:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [addressable] [usertype] flash_fw_ver @@ got unsigned int @@
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1123:22: sparse: expected restricted __le32 [addressable] [usertype] flash_fw_ver
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1123:22: sparse: got unsigned int
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1127:46: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1139:21: sparse: sparse: restricted __le32 degrades to integer
>> drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1799:9: sparse: sparse: context imbalance in 'netxen_process_cmd_ring' - wrong count at exit
>> drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1905:20: sparse: sparse: context imbalance in 'netxen_post_rx_buffers_nodb' - wrong count at exit
vim +/netxen_process_cmd_ring +1799 drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1733
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1734 /* Process Command status ring */
05aaa02d799e8e drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1735 int netxen_process_cmd_ring(struct netxen_adapter *adapter)
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1736 {
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 1737 u32 sw_consumer, hw_consumer;
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1738 int count = 0, i;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1739 struct netxen_cmd_buffer *buffer;
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1740 struct pci_dev *pdev = adapter->pdev;
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1741 struct net_device *netdev = adapter->netdev;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1742 struct netxen_skb_frag *frag;
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1743 int done = 0;
4ea528a151549d drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-28 1744 struct nx_host_tx_ring *tx_ring = adapter->tx_ring;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1745
240b23c4269777 drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c Tony Camuso 2015-05-06 1746 if (!spin_trylock_bh(&adapter->tx_clean_lock))
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1747 return 1;
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1748
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 1749 sw_consumer = tx_ring->sw_consumer;
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 1750 hw_consumer = le32_to_cpu(*(tx_ring->hw_consumer));
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1751
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 1752 while (sw_consumer != hw_consumer) {
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 1753 buffer = &tx_ring->cmd_buf_arr[sw_consumer];
53a01e00f8c78b drivers/net/netxen/netxen_nic_init.c dhananjay(a)netxen.com 2007-12-26 1754 if (buffer->skb) {
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1755 frag = &buffer->frag_array[0];
297af515d75f5c drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c Christophe JAILLET 2021-01-13 1756 dma_unmap_single(&pdev->dev, frag->dma, frag->length,
297af515d75f5c drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c Christophe JAILLET 2021-01-13 1757 DMA_TO_DEVICE);
96acb6eb8effe7 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2007-07-02 1758 frag->dma = 0ULL;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1759 for (i = 1; i < buffer->frag_count; i++) {
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1760 frag++; /* Get the next frag */
297af515d75f5c drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c Christophe JAILLET 2021-01-13 1761 dma_unmap_page(&pdev->dev, frag->dma,
297af515d75f5c drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c Christophe JAILLET 2021-01-13 1762 frag->length, DMA_TO_DEVICE);
96acb6eb8effe7 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2007-07-02 1763 frag->dma = 0ULL;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1764 }
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1765
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1766 adapter->stats.xmitfinished++;
53a01e00f8c78b drivers/net/netxen/netxen_nic_init.c dhananjay(a)netxen.com 2007-12-26 1767 dev_kfree_skb_any(buffer->skb);
53a01e00f8c78b drivers/net/netxen/netxen_nic_init.c dhananjay(a)netxen.com 2007-12-26 1768 buffer->skb = NULL;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1769 }
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1770
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 1771 sw_consumer = get_next_index(sw_consumer, tx_ring->num_desc);
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1772 if (++count >= MAX_STATUS_HANDLE)
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1773 break;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1774 }
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1775
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 1776 tx_ring->sw_consumer = sw_consumer;
22527864ed7ee6 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-05-05 1777
9295f940fb677b drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c Manish Chopra 2014-09-30 1778 if (count && netif_running(netdev)) {
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1779 smp_mb();
cb2107be43d2fc drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-06-17 1780
7a9905e64272c8 drivers/net/netxen/netxen_nic_init.c Rajesh Borundia 2010-10-18 1781 if (netif_queue_stopped(netdev) && netif_carrier_ok(netdev))
7a9905e64272c8 drivers/net/netxen/netxen_nic_init.c Rajesh Borundia 2010-10-18 1782 if (netxen_tx_avail(tx_ring) > TX_STOP_THRESH)
ba53e6b4878e07 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-03-17 1783 netif_wake_queue(netdev);
74c520da5414d1 drivers/net/netxen/netxen_nic_init.c Amit Kumar Salecha 2009-09-11 1784 adapter->tx_timeo_cnt = 0;
74c520da5414d1 drivers/net/netxen/netxen_nic_init.c Amit Kumar Salecha 2009-09-11 1785 }
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1786 /*
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1787 * If everything is freed up to consumer then check if the ring is full
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1788 * If the ring is full then check if more needs to be freed and
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1789 * schedule the call back again.
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1790 *
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1791 * This happens when there are 2 CPUs. One could be freeing and the
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1792 * other filling it. If the ring is full when we get out of here and
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1793 * the card has already interrupted the host then the host can miss the
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1794 * interrupt.
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1795 *
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1796 * There is still a possible race condition and the host could miss an
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1797 * interrupt. The card has to take care of this.
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1798 */
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 @1799 hw_consumer = le32_to_cpu(*(tx_ring->hw_consumer));
d877f1e344f551 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-04-07 1800 done = (sw_consumer == hw_consumer);
240b23c4269777 drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c Tony Camuso 2015-05-06 1801 spin_unlock_bh(&adapter->tx_clean_lock);
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1802
807540baae406c drivers/net/netxen/netxen_nic_init.c Eric Dumazet 2010-09-23 1803 return done;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1804 }
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1805
becf46a012db66 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-09 1806 void
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1807 netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ringid,
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1808 struct nx_host_rds_ring *rds_ring)
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1809 {
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1810 struct rcv_desc *pdesc;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1811 struct netxen_rx_buffer *buffer;
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1812 int producer, count = 0;
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1813 netxen_ctx_msg msg = 0;
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1814 struct list_head *head;
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1815
48bfd1e0fc66b2 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1816 producer = rds_ring->producer;
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1817
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1818 head = &rds_ring->free_list;
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1819 while (!list_empty(head)) {
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1820
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1821 buffer = list_entry(head->next, struct netxen_rx_buffer, list);
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1822
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1823 if (!buffer->skb) {
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1824 if (netxen_alloc_rx_skb(adapter, rds_ring, buffer))
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1825 break;
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1826 }
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1827
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1828 count++;
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1829 list_del(&buffer->list);
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1830
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1831 /* make a rcv descriptor */
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1832 pdesc = &rds_ring->desc_head[producer];
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1833 pdesc->addr_buffer = cpu_to_le64(buffer->dma);
ed33ebe464d973 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-18 1834 pdesc->reference_handle = cpu_to_le16(buffer->ref_handle);
48bfd1e0fc66b2 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1835 pdesc->buffer_length = cpu_to_le32(rds_ring->dma_size);
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1836
438627c77b877e drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1837 producer = get_next_index(producer, rds_ring->num_desc);
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1838 }
9b3ef55c6ddbe8 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1839
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1840 if (count) {
48bfd1e0fc66b2 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1841 rds_ring->producer = producer;
195c5f98294078 drivers/net/netxen/netxen_nic_init.c Amit Kumar Salecha 2009-09-05 1842 NXWRIO(adapter, rds_ring->crb_rcv_producer,
438627c77b877e drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1843 (producer-1) & (rds_ring->num_desc-1));
48bfd1e0fc66b2 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1844
4f96b988e8d404 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-07-26 1845 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) {
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1846 /*
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1847 * Write a doorbell msg to tell phanmon of change in
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1848 * receive ring producer
48bfd1e0fc66b2 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1849 * Only for firmware version < 4.0.0
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1850 */
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1851 netxen_set_msg_peg_id(msg, NETXEN_RCV_PEG_DB_ID);
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1852 netxen_set_msg_privid(msg);
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1853 netxen_set_msg_count(msg,
438627c77b877e drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1854 ((producer - 1) &
438627c77b877e drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1855 (rds_ring->num_desc - 1)));
3176ff3ee71bdd drivers/net/netxen/netxen_nic_init.c Mithlesh Thukral 2007-04-20 1856 netxen_set_msg_ctxid(msg, adapter->portnum);
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1857 netxen_set_msg_opcode(msg, NETXEN_RCV_PRODUCER(ringid));
f03b0ebd8e7132 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-10-13 1858 NXWRIO(adapter, DB_NORMALIZE(adapter,
f03b0ebd8e7132 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-10-13 1859 NETXEN_RCV_PRODUCER_OFFSET), msg);
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1860 }
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1861 }
48bfd1e0fc66b2 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1862 }
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1863
becf46a012db66 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-09 1864 static void
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1865 netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter,
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1866 struct nx_host_rds_ring *rds_ring)
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1867 {
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1868 struct rcv_desc *pdesc;
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1869 struct netxen_rx_buffer *buffer;
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1870 int producer, count = 0;
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1871 struct list_head *head;
ed25ffa1643472 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-04 1872
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1873 if (!spin_trylock(&rds_ring->lock))
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1874 return;
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1875
2227bae22becb8 drivers/net/netxen/netxen_nic_init.c Amit Kumar Salecha 2010-06-13 1876 producer = rds_ring->producer;
2227bae22becb8 drivers/net/netxen/netxen_nic_init.c Amit Kumar Salecha 2010-06-13 1877
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1878 head = &rds_ring->free_list;
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1879 while (!list_empty(head)) {
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1880
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1881 buffer = list_entry(head->next, struct netxen_rx_buffer, list);
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1882
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1883 if (!buffer->skb) {
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1884 if (netxen_alloc_rx_skb(adapter, rds_ring, buffer))
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1885 break;
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1886 }
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1887
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1888 count++;
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1889 list_del(&buffer->list);
d9e651bc06690c drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1890
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1891 /* make a rcv descriptor */
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1892 pdesc = &rds_ring->desc_head[producer];
ed33ebe464d973 drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-12-18 1893 pdesc->reference_handle = cpu_to_le16(buffer->ref_handle);
48bfd1e0fc66b2 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1894 pdesc->buffer_length = cpu_to_le32(rds_ring->dma_size);
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1895 pdesc->addr_buffer = cpu_to_le64(buffer->dma);
6f70340698333f drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-01-14 1896
438627c77b877e drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1897 producer = get_next_index(producer, rds_ring->num_desc);
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1898 }
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1899
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1900 if (count) {
48bfd1e0fc66b2 drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2008-07-21 1901 rds_ring->producer = producer;
195c5f98294078 drivers/net/netxen/netxen_nic_init.c Amit Kumar Salecha 2009-09-05 1902 NXWRIO(adapter, rds_ring->crb_rcv_producer,
438627c77b877e drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 1903 (producer - 1) & (rds_ring->num_desc - 1));
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1904 }
d8b100c5da003b drivers/net/netxen/netxen_nic_init.c Dhananjay Phadke 2009-03-13 @1905 spin_unlock(&rds_ring->lock);
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1906 }
3d396eb17e9f8c drivers/net/netxen/netxen_nic_init.c Amit S. Kale 2006-10-21 1907
:::::: The code at line 1799 was first introduced by commit
:::::: d877f1e344f5515988d9dcd6db5d4285911778a3 netxen: refactor transmit code
:::::: TO: Dhananjay Phadke <dhananjay@netxen.com>
:::::: CC: David S. Miller <davem@davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 40357 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-08-28 13:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-28 13:20 drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c:1799:9: sparse: sparse: context imbalance in 'netxen_process_cmd_ring' - wrong count at exit kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.