tree:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b01d57bfdc41c8f635b08b8a5af8a31217d46936
commit: 960984d964a9341cf50bf2b4ffdf0beb14467517 [2744/3213] include/linux/compiler-gcc.h:
sparse can do constant folding of __builtin_bswap*()
config: x86_64-randconfig-s021-20210309 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-262-g5e674421-dirty
#
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commi...
git remote add linux-next
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 960984d964a9341cf50bf2b4ffdf0beb14467517
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
"sparse warnings: (new ones prefixed by >>)"
drivers/net/ethernet/broadcom/cnic.c:1838:48: sparse: got unsigned long long
drivers/net/ethernet/broadcom/cnic.c:1840:48: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] hi @@
got unsigned long long @@
drivers/net/ethernet/broadcom/cnic.c:1840:48: sparse: expected restricted __le32
[usertype] hi
drivers/net/ethernet/broadcom/cnic.c:1840:48: sparse: got unsigned long long
drivers/net/ethernet/broadcom/cnic.c:1842:48: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] lo @@
got unsigned int [usertype] @@
drivers/net/ethernet/broadcom/cnic.c:1842:48: sparse: expected restricted __le32
[usertype] lo
drivers/net/ethernet/broadcom/cnic.c:1842:48: sparse: got unsigned int [usertype]
drivers/net/ethernet/broadcom/cnic.c:1843:48: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] hi @@
got unsigned int [usertype] @@
drivers/net/ethernet/broadcom/cnic.c:1843:48: sparse: expected restricted __le32
[usertype] hi
drivers/net/ethernet/broadcom/cnic.c:1843:48: sparse: got unsigned int [usertype]
drivers/net/ethernet/broadcom/cnic.c:1844:50: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] lo @@
got unsigned long long @@
drivers/net/ethernet/broadcom/cnic.c:1844:50: sparse: expected restricted __le32
[usertype] lo
drivers/net/ethernet/broadcom/cnic.c:1844:50: sparse: got unsigned long long
drivers/net/ethernet/broadcom/cnic.c:1846:50: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] hi @@
got unsigned long long @@
drivers/net/ethernet/broadcom/cnic.c:1846:50: sparse: expected restricted __le32
[usertype] hi
drivers/net/ethernet/broadcom/cnic.c:1846:50: sparse: got unsigned long long
drivers/net/ethernet/broadcom/cnic.c:1850:47: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] lo @@
got unsigned int @@
drivers/net/ethernet/broadcom/cnic.c:1850:47: sparse: expected restricted __le32
[usertype] lo
drivers/net/ethernet/broadcom/cnic.c:1850:47: sparse: got unsigned int
drivers/net/ethernet/broadcom/cnic.c:1852:47: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] hi @@
got unsigned int [usertype] cq_page_table_addr_hi @@
drivers/net/ethernet/broadcom/cnic.c:1852:47: sparse: expected restricted __le32
[usertype] hi
drivers/net/ethernet/broadcom/cnic.c:1852:47: sparse: got unsigned int [usertype]
cq_page_table_addr_hi
drivers/net/ethernet/broadcom/cnic.c:2071:17: sparse: sparse: cast from restricted
__sum16
drivers/net/ethernet/broadcom/cnic.c:2320:35: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] lo @@
got unsigned long long @@
drivers/net/ethernet/broadcom/cnic.c:2320:35: sparse: expected restricted __le32
[usertype] lo
drivers/net/ethernet/broadcom/cnic.c:2320:35: sparse: got unsigned long long
drivers/net/ethernet/broadcom/cnic.c:2321:35: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] hi @@
got unsigned long long @@
drivers/net/ethernet/broadcom/cnic.c:2321:35: sparse: expected restricted __le32
[usertype] hi
drivers/net/ethernet/broadcom/cnic.c:2321:35: sparse: got unsigned long long
drivers/net/ethernet/broadcom/cnic.c:2322:32: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [usertype] eq_pbl_size
@@ got int num_pages @@
drivers/net/ethernet/broadcom/cnic.c:2322:32: sparse: expected restricted __le32
[usertype] eq_pbl_size
drivers/net/ethernet/broadcom/cnic.c:2322:32: sparse: got int num_pages
drivers/net/ethernet/broadcom/cnic.c:2324:27: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] sb_num @@
got unsigned int [usertype] status_blk_num @@
drivers/net/ethernet/broadcom/cnic.c:2324:27: sparse: expected restricted __le16
[usertype] sb_num
drivers/net/ethernet/broadcom/cnic.c:2324:27: sparse: got unsigned int [usertype]
status_blk_num
drivers/net/ethernet/broadcom/cnic.c:2325:28: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] eq_prod @@
got unsigned long @@
drivers/net/ethernet/broadcom/cnic.c:2325:28: sparse: expected restricted __le16
[usertype] eq_prod
drivers/net/ethernet/broadcom/cnic.c:2325:28: sparse: got unsigned long
drivers/net/ethernet/broadcom/cnic.c:2366:16: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [usertype] l5_cid @@
got restricted __le16 [usertype] fcoe_conn_id @@
drivers/net/ethernet/broadcom/cnic.c:2366:16: sparse: expected unsigned int
[usertype] l5_cid
drivers/net/ethernet/broadcom/cnic.c:2366:16: sparse: got restricted __le16
[usertype] fcoe_conn_id
drivers/net/ethernet/broadcom/cnic.c:2423:27: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [addressable]
[assigned] [usertype] fcoe_conn_id @@ got restricted __le16 [usertype] fcoe_conn_id
@@
drivers/net/ethernet/broadcom/cnic.c:2423:27: sparse: expected restricted __le32
[addressable] [assigned] [usertype] fcoe_conn_id
drivers/net/ethernet/broadcom/cnic.c:2423:27: sparse: got restricted __le16
[usertype] fcoe_conn_id
drivers/net/ethernet/broadcom/cnic.c:2424:32: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [addressable]
[assigned] [usertype] completion_status @@ got int @@
drivers/net/ethernet/broadcom/cnic.c:2424:32: sparse: expected restricted __le32
[addressable] [assigned] [usertype] completion_status
drivers/net/ethernet/broadcom/cnic.c:2424:32: sparse: got int
drivers/net/ethernet/broadcom/cnic.c:2441:13: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [usertype] cid @@ got
restricted __le32 [usertype] context_id @@
drivers/net/ethernet/broadcom/cnic.c:2441:13: sparse: expected unsigned int
[usertype] cid
drivers/net/ethernet/broadcom/cnic.c:2441:13: sparse: got restricted __le32
[usertype] context_id
drivers/net/ethernet/broadcom/cnic.c:2442:21: sparse: sparse: restricted __le32
degrades to integer
drivers/net/ethernet/broadcom/cnic.c:2469:13: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [usertype] cid @@ got
restricted __le32 [usertype] context_id @@
drivers/net/ethernet/broadcom/cnic.c:2469:13: sparse: expected unsigned int
[usertype] cid
drivers/net/ethernet/broadcom/cnic.c:2469:13: sparse: got restricted __le32
[usertype] context_id
drivers/net/ethernet/broadcom/cnic.c:2470:16: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [usertype] l5_cid @@
got restricted __le32 [usertype] conn_id @@
drivers/net/ethernet/broadcom/cnic.c:2470:16: sparse: expected unsigned int
[usertype] l5_cid
drivers/net/ethernet/broadcom/cnic.c:2470:16: sparse: got restricted __le32
[usertype] conn_id
drivers/net/ethernet/broadcom/cnic.c:2503:13: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [usertype] cid @@ got
restricted __le32 [usertype] context_id @@
drivers/net/ethernet/broadcom/cnic.c:2503:13: sparse: expected unsigned int
[usertype] cid
drivers/net/ethernet/broadcom/cnic.c:2503:13: sparse: got restricted __le32
[usertype] context_id
drivers/net/ethernet/broadcom/cnic.c:2504:16: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [usertype] l5_cid @@
got restricted __le32 [usertype] conn_id @@
drivers/net/ethernet/broadcom/cnic.c:2504:16: sparse: expected unsigned int
[usertype] l5_cid
drivers/net/ethernet/broadcom/cnic.c:2504:16: sparse: got restricted __le32
[usertype] conn_id
drivers/net/ethernet/broadcom/cnic.c:2516:32: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [addressable]
[usertype] completion_status @@ got int @@
drivers/net/ethernet/broadcom/cnic.c:2516:32: sparse: expected restricted __le32
[addressable] [usertype] completion_status
drivers/net/ethernet/broadcom/cnic.c:2516:32: sparse: got int
drivers/net/ethernet/broadcom/cnic.c:2531:35: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le32 [addressable]
[assigned] [usertype] fcoe_conn_context_id @@ got unsigned int [usertype] cid @@
drivers/net/ethernet/broadcom/cnic.c:2531:35: sparse: expected restricted __le32
[addressable] [assigned] [usertype] fcoe_conn_context_id
drivers/net/ethernet/broadcom/cnic.c:2531:35: sparse: got unsigned int [usertype]
cid
drivers/net/ethernet/broadcom/cnic.c:2603:29: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [assigned] [usertype] cid
@@ got restricted __le32 [usertype] context_id @@
drivers/net/ethernet/broadcom/cnic.c:2603:29: sparse: expected unsigned int
[assigned] [usertype] cid
drivers/net/ethernet/broadcom/cnic.c:2603:29: sparse: got restricted __le32
[usertype] context_id
drivers/net/ethernet/broadcom/cnic.c:2604:32: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [usertype] l5_cid @@
got restricted __le32 [usertype] conn_id @@
drivers/net/ethernet/broadcom/cnic.c:2604:32: sparse: expected unsigned int
[usertype] l5_cid
drivers/net/ethernet/broadcom/cnic.c:2604:32: sparse: got restricted __le32
[usertype] conn_id
drivers/net/ethernet/broadcom/cnic.c:3505:40: sparse: sparse: cast to restricted
__be32
drivers/net/ethernet/broadcom/cnic.c:3506:40: sparse: sparse: cast to restricted
__be32
drivers/net/ethernet/broadcom/cnic.c:3507:40: sparse: sparse: cast to restricted
__be32
drivers/net/ethernet/broadcom/cnic.c:3508:40: sparse: sparse: cast to restricted
__be32
drivers/net/ethernet/broadcom/cnic.c:3509:40: sparse: sparse: cast to restricted
__be32
drivers/net/ethernet/broadcom/cnic.c:3510:40: sparse: sparse: cast to restricted
__be32
drivers/net/ethernet/broadcom/cnic.c:3525:27: sparse: sparse: cast to restricted
__be32
drivers/net/ethernet/broadcom/cnic.c:3526:27: sparse: sparse: cast to restricted
__be32
drivers/net/ethernet/broadcom/cnic.c:3527:29: sparse: sparse: cast to restricted
__be16
drivers/net/ethernet/broadcom/cnic.c:3528:29: sparse: sparse: cast to restricted
__be16
drivers/net/ethernet/broadcom/cnic.c:3631:49: sparse: sparse: cast to restricted
__be16
drivers/net/ethernet/broadcom/cnic.c:3783:31: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned short [usertype] dst_port @@
got restricted __be16 [usertype] sin6_port @@
drivers/net/ethernet/broadcom/cnic.c:3783:31: sparse: expected unsigned short
[usertype] dst_port
drivers/net/ethernet/broadcom/cnic.c:3783:31: sparse: got restricted __be16
[usertype] sin6_port
drivers/net/ethernet/broadcom/cnic.c:3789:32: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int @@ got restricted
__be32 [usertype] s_addr @@
drivers/net/ethernet/broadcom/cnic.c:3789:32: sparse: expected unsigned int
drivers/net/ethernet/broadcom/cnic.c:3789:32: sparse: got restricted __be32
[usertype] s_addr
drivers/net/ethernet/broadcom/cnic.c:3790:31: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned short [usertype] dst_port @@
got restricted __be16 [usertype] sin_port @@
drivers/net/ethernet/broadcom/cnic.c:3790:31: sparse: expected unsigned short
[usertype] dst_port
drivers/net/ethernet/broadcom/cnic.c:3790:31: sparse: got restricted __be16
[usertype] sin_port
drivers/net/ethernet/broadcom/cnic.c:3820:23: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned short [usertype] src_port @@
got restricted __be16 [assigned] [usertype] local_port @@
drivers/net/ethernet/broadcom/cnic.c:3820:23: sparse: expected unsigned short
[usertype] src_port
drivers/net/ethernet/broadcom/cnic.c:3820:23: sparse: got restricted __be16
[assigned] [usertype] local_port
drivers/net/ethernet/broadcom/cnic.c:3977:29: sparse: sparse: restricted __le32
degrades to integer
drivers/net/ethernet/broadcom/cnic.c:4940:43: sparse: sparse: restricted __le32
degrades to integer
> drivers/net/ethernet/broadcom/cnic.c:4940:33: sparse: sparse:
incorrect type in assignment (different base types) @@ expected restricted __le32
[usertype] addr_lo @@ got unsigned int @@
drivers/net/ethernet/broadcom/cnic.c:4940:33: sparse: expected restricted __le32
[usertype] addr_lo
drivers/net/ethernet/broadcom/cnic.c:4940:33: sparse: got unsigned int
> drivers/net/ethernet/broadcom/cnic.c:4948:46: sparse: sparse:
incorrect type in assignment (different base types) @@ expected restricted __le32
[usertype] parsing_data @@ got int @@
drivers/net/ethernet/broadcom/cnic.c:4948:46: sparse: expected restricted __le32
[usertype] parsing_data
drivers/net/ethernet/broadcom/cnic.c:4948:46: sparse: got int
> drivers/net/ethernet/broadcom/cnic.c:4951:46: sparse: sparse:
incorrect type in assignment (different base types) @@ expected restricted __le16
[usertype] global_data @@ got int @@
drivers/net/ethernet/broadcom/cnic.c:4951:46: sparse: expected restricted __le16
[usertype] global_data
drivers/net/ethernet/broadcom/cnic.c:4951:46: sparse: got int
> drivers/net/ethernet/broadcom/cnic.c:4976:25: sparse: sparse:
incorrect type in assignment (different base types) @@ expected unsigned short
[usertype] *tx_cons_ptr @@ got restricted __le16 * @@
drivers/net/ethernet/broadcom/cnic.c:4976:25: sparse: expected unsigned short
[usertype] *tx_cons_ptr
drivers/net/ethernet/broadcom/cnic.c:4976:25: sparse: got restricted __le16 *
> drivers/net/ethernet/broadcom/cnic.c:5041:35: sparse: sparse:
incorrect type in assignment (different base types) @@ expected restricted __le16
[usertype] silent_vlan_mask @@ got int @@
drivers/net/ethernet/broadcom/cnic.c:5041:35: sparse: expected restricted __le16
[usertype] silent_vlan_mask
drivers/net/ethernet/broadcom/cnic.c:5041:35: sparse: got int
> drivers/net/ethernet/broadcom/cnic.c:5043:25: sparse: sparse:
incorrect type in assignment (different base types) @@ expected unsigned short
[usertype] *rx_cons_ptr @@ got restricted __le16 * @@
drivers/net/ethernet/broadcom/cnic.c:5043:25: sparse: expected unsigned short
[usertype] *rx_cons_ptr
drivers/net/ethernet/broadcom/cnic.c:5043:25: sparse: got restricted __le16 *
> drivers/net/ethernet/broadcom/cnic.c:5061:42: sparse: sparse:
incorrect type in assignment (different base types) @@ expected unsigned short
[usertype] *hw_prod_idx_ptr @@ got restricted __le16 * @@
drivers/net/ethernet/broadcom/cnic.c:5061:42: sparse: expected unsigned short
[usertype] *hw_prod_idx_ptr
drivers/net/ethernet/broadcom/cnic.c:5061:42: sparse: got restricted __le16 *
> drivers/net/ethernet/broadcom/cnic.c:5063:41: sparse: sparse:
incorrect type in assignment (different base types) @@ expected unsigned short
[usertype] *status_idx_ptr @@ got restricted __le16 * @@
drivers/net/ethernet/broadcom/cnic.c:5063:41: sparse: expected unsigned short
[usertype] *status_idx_ptr
drivers/net/ethernet/broadcom/cnic.c:5063:41: sparse: got restricted __le16 *
drivers/net/ethernet/broadcom/cnic.c:5068:42: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned short [usertype]
*hw_prod_idx_ptr @@ got restricted __le16 * @@
drivers/net/ethernet/broadcom/cnic.c:5068:42: sparse: expected unsigned short
[usertype] *hw_prod_idx_ptr
drivers/net/ethernet/broadcom/cnic.c:5068:42: sparse: got restricted __le16 *
drivers/net/ethernet/broadcom/cnic.c:5070:41: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned short [usertype]
*status_idx_ptr @@ got restricted __le16 * @@
drivers/net/ethernet/broadcom/cnic.c:5070:41: sparse: expected unsigned short
[usertype] *status_idx_ptr
drivers/net/ethernet/broadcom/cnic.c:5070:41: sparse: got restricted __le16 *
drivers/net/ethernet/broadcom/cnic.c:5080:42: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned short [usertype]
*hw_prod_idx_ptr @@ got restricted __le16 * @@
drivers/net/ethernet/broadcom/cnic.c:5080:42: sparse: expected unsigned short
[usertype] *hw_prod_idx_ptr
drivers/net/ethernet/broadcom/cnic.c:5080:42: sparse: got restricted __le16 *
drivers/net/ethernet/broadcom/cnic.c:5082:41: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned short [usertype]
*status_idx_ptr @@ got restricted __le16 * @@
drivers/net/ethernet/broadcom/cnic.c:5082:41: sparse: expected unsigned short
[usertype] *status_idx_ptr
drivers/net/ethernet/broadcom/cnic.c:5082:41: sparse: got restricted __le16 *
vim +4940 drivers/net/ethernet/broadcom/cnic.c
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4913
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4914
static void cnic_init_bnx2x_tx_ring(struct cnic_dev *dev,
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4915
struct client_init_ramrod_data *data)
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4916 {
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4917
struct cnic_local *cp = dev->cnic_priv;
104a43edb26432 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2013-09-02 4918
struct bnx2x *bp = netdev_priv(dev->netdev);
cd801536c236e2 drivers/net/cnic.c Michael Chan 2010-10-13 4919
struct cnic_uio_dev *udev = cp->udev;
cd801536c236e2 drivers/net/cnic.c Michael Chan 2010-10-13 4920
union eth_tx_bd_types *txbd = (union eth_tx_bd_types *) udev->l2_ring;
cd801536c236e2 drivers/net/cnic.c Michael Chan 2010-10-13 4921
dma_addr_t buf_map, ring_map = udev->l2_ring_map;
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4922
struct host_sp_status_block *sb = cp->bnx2x_def_status_blk;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4923 int
i;
5159fdc1e6cb40 drivers/net/cnic.c Michael Chan 2010-12-23 4924 u32
cli = cp->ethdev->iscsi_l2_client_id;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4925 u32
val;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4926
be1fefc21433f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2014-03-17 4927
memset(txbd, 0, CNIC_PAGE_SIZE);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4928
cd801536c236e2 drivers/net/cnic.c Michael Chan 2010-10-13 4929
buf_map = udev->l2_buf_map;
2bc4078e92b283 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2012-12-06 4930 for
(i = 0; i < BNX2_MAX_TX_DESC_CNT; i += 3, txbd += 3) {
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4931
struct eth_tx_start_bd *start_bd = &txbd->start_bd;
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 4932
struct eth_tx_parse_bd_e1x *pbd_e1x =
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 4933
&((txbd + 1)->parse_bd_e1x);
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 4934
struct eth_tx_parse_bd_e2 *pbd_e2 = &((txbd + 1)->parse_bd_e2);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4935
struct eth_tx_bd *reg_bd = &((txbd + 2)->reg_bd);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4936
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4937
start_bd->addr_hi = cpu_to_le32((u64) buf_map >> 32);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4938
start_bd->addr_lo = cpu_to_le32(buf_map & 0xffffffff);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4939
reg_bd->addr_hi = start_bd->addr_hi;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 @4940
reg_bd->addr_lo = start_bd->addr_lo + 0x10;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4941
start_bd->nbytes = cpu_to_le16(0x10);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4942
start_bd->nbd = cpu_to_le16(3);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4943
start_bd->bd_flags.as_bitfield = ETH_TX_BD_FLAGS_START_BD;
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 4944
start_bd->general_data &= ~ETH_TX_START_BD_PARSE_NBDS;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4945
start_bd->general_data |= (1 << ETH_TX_START_BD_HDR_NBDS_SHIFT);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4946
104a43edb26432 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2013-09-02 4947 if
(BNX2X_CHIP_IS_E2_PLUS(bp))
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 @4948
pbd_e2->parsing_data = (UNICAST_ADDRESS <<
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 4949
ETH_TX_PARSE_BD_E2_ETH_ADDR_TYPE_SHIFT);
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 4950
else
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 @4951
pbd_e1x->global_data = (UNICAST_ADDRESS <<
96bed4b954fd5e drivers/net/ethernet/broadcom/cnic.c Yuval Mintz 2012-10-01 4952
ETH_TX_PARSE_BD_E1X_ETH_ADDR_TYPE_SHIFT);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4953 }
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4954
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4955 val
= (u64) ring_map >> 32;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4956
txbd->next_bd.addr_hi = cpu_to_le32(val);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4957
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4958
data->tx.tx_bd_page_base.hi = cpu_to_le32(val);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4959
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4960 val
= (u64) ring_map & 0xffffffff;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4961
txbd->next_bd.addr_lo = cpu_to_le32(val);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4962
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4963
data->tx.tx_bd_page_base.lo = cpu_to_le32(val);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4964
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4965 /*
Other ramrod params */
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4966
data->tx.tx_sb_index_number = HC_SP_INDEX_ETH_ISCSI_CQ_CONS;
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4967
data->tx.tx_status_block_id = BNX2X_DEF_SB_ID;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4968
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4969 /*
reset xstorm per client statistics */
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4970 if
(cli < MAX_STAT_COUNTER_ID) {
619c5cb6885b93 drivers/net/cnic.c Vlad Zolotarov 2011-06-14 4971
data->general.statistics_zero_flg = 1;
619c5cb6885b93 drivers/net/cnic.c Vlad Zolotarov 2011-06-14 4972
data->general.statistics_en_flg = 1;
619c5cb6885b93 drivers/net/cnic.c Vlad Zolotarov 2011-06-14 4973
data->general.statistics_counter_id = cli;
6b2a541db58dba drivers/net/cnic.c Dmitry Kravkov 2010-06-23 4974 }
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4975
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 @4976
cp->tx_cons_ptr =
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4977
&sb->sp_sb.index_values[HC_SP_INDEX_ETH_ISCSI_CQ_CONS];
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4978 }
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4979
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4980
static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev,
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4981
struct client_init_ramrod_data *data)
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4982 {
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4983
struct cnic_local *cp = dev->cnic_priv;
104a43edb26432 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2013-09-02 4984
struct bnx2x *bp = netdev_priv(dev->netdev);
cd801536c236e2 drivers/net/cnic.c Michael Chan 2010-10-13 4985
struct cnic_uio_dev *udev = cp->udev;
cd801536c236e2 drivers/net/cnic.c Michael Chan 2010-10-13 4986
struct eth_rx_bd *rxbd = (struct eth_rx_bd *) (udev->l2_ring +
be1fefc21433f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2014-03-17 4987
CNIC_PAGE_SIZE);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4988
struct eth_rx_cqe_next_page *rxcqe = (struct eth_rx_cqe_next_page *)
be1fefc21433f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2014-03-17 4989
(udev->l2_ring + (2 * CNIC_PAGE_SIZE));
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4990
struct host_sp_status_block *sb = cp->bnx2x_def_status_blk;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4991 int
i;
5159fdc1e6cb40 drivers/net/cnic.c Michael Chan 2010-12-23 4992 u32
cli = cp->ethdev->iscsi_l2_client_id;
104a43edb26432 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2013-09-02 4993 int
cl_qzone_id = BNX2X_CL_QZONE_ID(bp, cli);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 4994 u32
val;
cd801536c236e2 drivers/net/cnic.c Michael Chan 2010-10-13 4995
dma_addr_t ring_map = udev->l2_ring_map;
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4996
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4997 /*
General data */
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4998
data->general.client_id = cli;
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 4999
data->general.activate_flg = 1;
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5000
data->general.sp_client_id = cli;
619c5cb6885b93 drivers/net/cnic.c Vlad Zolotarov 2011-06-14 5001
data->general.mtu = cpu_to_le16(cp->l2_single_buf_size - 14);
a5b3c4ae27f0f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2013-09-02 5002
data->general.func_id = bp->pfid;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5003
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5004 for
(i = 0; i < BNX2X_MAX_RX_DESC_CNT; i++, rxbd++) {
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5005
dma_addr_t buf_map;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5006 int
n = (i % cp->l2_rx_ring_size) + 1;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5007
cd801536c236e2 drivers/net/cnic.c Michael Chan 2010-10-13 5008
buf_map = udev->l2_buf_map + (n * cp->l2_single_buf_size);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5009
rxbd->addr_hi = cpu_to_le32((u64) buf_map >> 32);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5010
rxbd->addr_lo = cpu_to_le32(buf_map & 0xffffffff);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5011 }
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5012
be1fefc21433f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2014-03-17 5013 val
= (u64) (ring_map + CNIC_PAGE_SIZE) >> 32;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5014
rxbd->addr_hi = cpu_to_le32(val);
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5015
data->rx.bd_page_base.hi = cpu_to_le32(val);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5016
be1fefc21433f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2014-03-17 5017 val
= (u64) (ring_map + CNIC_PAGE_SIZE) & 0xffffffff;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5018
rxbd->addr_lo = cpu_to_le32(val);
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5019
data->rx.bd_page_base.lo = cpu_to_le32(val);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5020
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5021
rxcqe += BNX2X_MAX_RCQ_DESC_CNT;
be1fefc21433f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2014-03-17 5022 val
= (u64) (ring_map + (2 * CNIC_PAGE_SIZE)) >> 32;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5023
rxcqe->addr_hi = cpu_to_le32(val);
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5024
data->rx.cqe_page_base.hi = cpu_to_le32(val);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5025
be1fefc21433f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2014-03-17 5026 val
= (u64) (ring_map + (2 * CNIC_PAGE_SIZE)) & 0xffffffff;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5027
rxcqe->addr_lo = cpu_to_le32(val);
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5028
data->rx.cqe_page_base.lo = cpu_to_le32(val);
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5029
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5030 /*
Other ramrod params */
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5031
data->rx.client_qzone_id = cl_qzone_id;
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5032
data->rx.rx_sb_index_number = HC_SP_INDEX_ETH_ISCSI_RX_CQ_CONS;
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5033
data->rx.status_block_id = BNX2X_DEF_SB_ID;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5034
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5035
data->rx.cache_line_alignment_log_size = L1_CACHE_SHIFT;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5036
619c5cb6885b93 drivers/net/cnic.c Vlad Zolotarov 2011-06-14 5037
data->rx.max_bytes_on_bd = cpu_to_le16(cp->l2_single_buf_size);
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5038
data->rx.outer_vlan_removal_enable_flg = 1;
619c5cb6885b93 drivers/net/cnic.c Vlad Zolotarov 2011-06-14 5039
data->rx.silent_vlan_removal_flg = 1;
619c5cb6885b93 drivers/net/cnic.c Vlad Zolotarov 2011-06-14 5040
data->rx.silent_vlan_value = 0;
619c5cb6885b93 drivers/net/cnic.c Vlad Zolotarov 2011-06-14 @5041
data->rx.silent_vlan_mask = 0xffff;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5042
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 @5043
cp->rx_cons_ptr =
523224a3b3cd40 drivers/net/cnic.c Dmitry Kravkov 2010-10-06 5044
&sb->sp_sb.index_values[HC_SP_INDEX_ETH_ISCSI_RX_CQ_CONS];
5159fdc1e6cb40 drivers/net/cnic.c Michael Chan 2010-12-23 5045
cp->rx_cons = *cp->rx_cons_ptr;
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5046 }
71034ba845c9ff drivers/net/cnic.c Michael Chan 2009-10-10 5047
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5048
static void cnic_init_bnx2x_kcq(struct cnic_dev *dev)
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5049 {
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5050
struct cnic_local *cp = dev->cnic_priv;
68c64d2034faa0 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2012-12-06 5051
struct bnx2x *bp = netdev_priv(dev->netdev);
a5b3c4ae27f0f6 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2013-09-02 5052 u32
pfid = bp->pfid;
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5053
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5054
cp->kcq1.io_addr = BAR_CSTRORM_INTMEM +
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5055
CSTORM_ISCSI_EQ_PROD_OFFSET(pfid, 0);
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5056
cp->kcq1.sw_prod_idx = 0;
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5057
104a43edb26432 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2013-09-02 5058 if
(BNX2X_CHIP_IS_E2_PLUS(bp)) {
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5059
struct host_hc_status_block_e2 *sb = cp->status_blk.gen;
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5060
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 @5061
cp->kcq1.hw_prod_idx_ptr =
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5062
&sb->sb.index_values[HC_INDEX_ISCSI_EQ_CONS];
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 @5063
cp->kcq1.status_idx_ptr =
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5064
&sb->sb.running_index[SM_RX_ID];
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5065 }
else {
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5066
struct host_hc_status_block_e1x *sb = cp->status_blk.gen;
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5067
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5068
cp->kcq1.hw_prod_idx_ptr =
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5069
&sb->sb.index_values[HC_INDEX_ISCSI_EQ_CONS];
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5070
cp->kcq1.status_idx_ptr =
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5071
&sb->sb.running_index[SM_RX_ID];
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5072 }
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5073
104a43edb26432 drivers/net/ethernet/broadcom/cnic.c Michael Chan 2013-09-02 5074 if
(BNX2X_CHIP_IS_E2_PLUS(bp)) {
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5075
struct host_hc_status_block_e2 *sb = cp->status_blk.gen;
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5076
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5077
cp->kcq2.io_addr = BAR_USTRORM_INTMEM +
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5078
USTORM_FCOE_EQ_PROD_OFFSET(pfid);
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5079
cp->kcq2.sw_prod_idx = 0;
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5080
cp->kcq2.hw_prod_idx_ptr =
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5081
&sb->sb.index_values[HC_INDEX_FCOE_EQ_CONS];
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5082
cp->kcq2.status_idx_ptr =
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5083
&sb->sb.running_index[SM_RX_ID];
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5084 }
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5085 }
e21ba414eed8a2 drivers/net/cnic.c Michael Chan 2010-12-23 5086
:::::: The code at line 4940 was first introduced by commit
:::::: 71034ba845c9ff219373066f904286c0b7506922 cnic: Add main functions to support bnx2x
devices.
:::::: TO: Michael Chan <mchan(a)broadcom.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org