The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Thomas Weißschuh " <thomas.weissschuh@linutronix.de>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Shuah Khan <skhan@linuxfoundation.org>,
	Johannes Berg <johannes@sipsolutions.net>,
	David Gow <davidgow@google.com>
Subject: drivers/scsi/bnx2fc/bnx2fc_hwi.c:1665:47: sparse: sparse: incorrect type in assignment (different base types)
Date: Thu, 14 May 2026 15:43:12 +0800	[thread overview]
Message-ID: <202605141506.xPdfd7Ju-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   e1914add2799225a87502051415fc5c32aeb02ae
commit: 031cdd3bc3f369553933c1b0f4cb18000162c8ff kunit: Enable PCI on UML without triggering WARN()
date:   8 months ago
config: um-randconfig-r123-20260514 (https://download.01.org/0day-ci/archive/20260514/202605141506.xPdfd7Ju-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260514/202605141506.xPdfd7Ju-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: 031cdd3bc3f3 ("kunit: Enable PCI on UML without triggering WARN()")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605141506.xPdfd7Ju-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:505:29: sparse:     got unsigned int [usertype] fcoe_conn_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:613:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] fr_crc @@     got restricted __le32 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:613:28: sparse:     expected unsigned int [usertype] fr_crc
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:613:28: sparse:     got restricted __le32 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:695:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] xid @@     got restricted __le16 [usertype] ox_id @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:695:21: sparse:     expected unsigned short [usertype] xid
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:695:21: sparse:     got restricted __le16 [usertype] ox_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:727:27: sparse: sparse: cast from restricted __le32
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:728:26: sparse: sparse: cast from restricted __le32
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:807:23: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short [usertype] val @@     got restricted __le16 [usertype] ox_id @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:807:23: sparse:     expected unsigned short [usertype] val
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:807:23: sparse:     got restricted __le16 [usertype] ox_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:807:23: sparse: sparse: cast from restricted __le16
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:807:23: sparse: sparse: cast from restricted __le16
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:807:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] xid @@     got restricted __be16 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:807:21: sparse:     expected unsigned short [usertype] xid
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:807:21: sparse:     got restricted __be16 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:821:27: sparse: sparse: cast from restricted __le32
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:822:26: sparse: sparse: cast from restricted __le32
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:886:45: sparse: sparse: restricted __le16 degrades to integer
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:963:33: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] doorbell_cq_cons @@     got int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:963:33: sparse:     expected restricted __le16 [usertype] doorbell_cq_cons
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:963:33: sparse:     got int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:966:16: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __le32 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:966:16: sparse:     expected unsigned int [usertype] value
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:966:16: sparse:     got restricted __le32 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1019:43: sparse: sparse: restricted __le16 degrades to integer
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1089:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] wqe @@     got restricted __le16 [usertype] wqe @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1089:22: sparse:     expected unsigned short [usertype] wqe
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1089:22: sparse:     got restricted __le16 [usertype] wqe
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1253:17: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] conn_id @@     got restricted __le32 [usertype] fcoe_conn_id @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1253:17: sparse:     expected unsigned int [usertype] conn_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1253:17: sparse:     got restricted __le32 [usertype] fcoe_conn_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1369:53: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected unsigned int [usertype] err_code @@     got restricted __le32 [usertype] completion_status @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1369:53: sparse:     expected unsigned int [usertype] err_code
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1369:53: sparse:     got restricted __le32 [usertype] completion_status
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1420:18: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] wqe @@     got int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1420:18: sparse:     expected restricted __le16 [usertype] wqe
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1420:18: sparse:     got int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1421:18: sparse: sparse: invalid assignment: |=
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1421:18: sparse:    left side has type restricted __le16
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1421:18: sparse:    right side has type int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1439:16: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __le32 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1439:16: sparse:     expected unsigned int [usertype] value
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1439:16: sparse:     got restricted __le32 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1522:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] init_flags @@     got unsigned int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1522:46: sparse:     expected restricted __le32 [usertype] init_flags
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1522:46: sparse:     got unsigned int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1524:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] init_flags @@     got unsigned int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1524:46: sparse:     expected restricted __le32 [usertype] init_flags
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1524:46: sparse:     got unsigned int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1527:63: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] cleaned_task_id @@     got unsigned short [usertype] orig_xid @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1527:63: sparse:     expected restricted __le16 [usertype] cleaned_task_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1527:63: sparse:     got unsigned short [usertype] orig_xid
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1530:69: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] rolled_tx_data_offset @@     got unsigned int [usertype] offset @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1530:69: sparse:     expected restricted __le32 [usertype] rolled_tx_data_offset
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1530:69: sparse:     got unsigned int [usertype] offset
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1536:35: sparse: sparse: restricted __le16 degrades to integer
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1538:24: sparse: sparse: invalid assignment: -=
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1538:24: sparse:    left side has type unsigned int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1538:24: sparse:    right side has type restricted __le16
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1543:69: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1543:69: sparse:     expected restricted __le32 [usertype] lo
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1543:69: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1545:69: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1545:69: sparse:     expected restricted __le32 [usertype] hi
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1545:69: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1549:65: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] cur_sge_off @@     got unsigned int [usertype] offset @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1549:65: sparse:     expected restricted __le16 [usertype] cur_sge_off
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1549:65: sparse:     got unsigned int [usertype] offset
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1556:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1556:46: sparse:     expected restricted __le32 [usertype] lo
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1556:46: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1557:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1557:46: sparse:     expected restricted __le32 [usertype] hi
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1557:46: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1559:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] cur_sge_off @@     got unsigned int [usertype] offset @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1559:42: sparse:     expected restricted __le16 [usertype] cur_sge_off
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1559:42: sparse:     got unsigned int [usertype] offset
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1564:55: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] low_exp_ro @@     got unsigned int [usertype] orig_offset @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1564:55: sparse:     expected restricted __le32 [usertype] low_exp_ro
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1564:55: sparse:     got unsigned int [usertype] orig_offset
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1565:56: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] high_exp_ro @@     got unsigned int [usertype] orig_offset @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1565:56: sparse:     expected restricted __le32 [usertype] high_exp_ro
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1565:56: sparse:     got unsigned int [usertype] orig_offset
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1592:63: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] cleaned_task_id @@     got unsigned short [usertype] orig_xid @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1592:63: sparse:     expected restricted __le16 [usertype] cleaned_task_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1592:63: sparse:     got unsigned short [usertype] orig_xid
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1600:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] init_flags @@     got unsigned int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1600:46: sparse:     expected restricted __le32 [usertype] init_flags
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1600:46: sparse:     got unsigned int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1602:42: sparse: sparse: invalid assignment: |=
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1602:42: sparse:    left side has type restricted __le16
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1602:42: sparse:    right side has type int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1638:69: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1638:69: sparse:     expected restricted __le32 [usertype] lo
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1638:69: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1640:69: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1640:69: sparse:     expected restricted __le32 [usertype] hi
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1640:69: sparse:     got unsigned int [usertype]
>> drivers/scsi/bnx2fc/bnx2fc_hwi.c:1665:47: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] data_2_trns @@     got unsigned int [usertype] data_xfer_len @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1665:47: sparse:     expected restricted __le32 [usertype] data_2_trns
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1665:47: sparse:     got unsigned int [usertype] data_xfer_len
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1668:42: sparse: sparse: invalid assignment: |=
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1668:42: sparse:    left side has type restricted __le16
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1668:42: sparse:    right side has type int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1672:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] init_flags @@     got unsigned int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1672:46: sparse:     expected restricted __le32 [usertype] init_flags
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1672:46: sparse:     got unsigned int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1679:47: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] rx_id @@     got int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1679:47: sparse:     expected restricted __le16 [usertype] rx_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1679:47: sparse:     got int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1687:16: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] @@     got restricted __be64 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1687:16: sparse:     expected unsigned long long [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1687:16: sparse:     got restricted __be64 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1688:16: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] @@     got restricted __be64 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1688:16: sparse:     expected unsigned long long [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1688:16: sparse:     got restricted __be64 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1689:16: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] @@     got restricted __be64 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1689:16: sparse:     expected unsigned long long [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1689:16: sparse:     got restricted __be64 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1695:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1695:46: sparse:     expected restricted __le32 [usertype] lo
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1695:46: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1696:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1696:46: sparse:     expected restricted __le32 [usertype] hi
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1696:46: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1749:77: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1749:77: sparse:     expected restricted __le32 [usertype] lo
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1749:77: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1751:77: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1751:77: sparse:     expected restricted __le32 [usertype] hi
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1751:77: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1779:54: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] seq_cnt @@     got int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1779:54: sparse:     expected restricted __le16 [usertype] seq_cnt
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1779:54: sparse:     got int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1793:31: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] @@     got restricted __be64 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1793:31: sparse:     expected unsigned long long [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1793:31: sparse:     got restricted __be64 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1798:47: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] data_2_trns @@     got unsigned int [usertype] data_xfer_len @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1798:47: sparse:     expected restricted __le32 [usertype] data_2_trns
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1798:47: sparse:     got unsigned int [usertype] data_xfer_len
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1801:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] init_flags @@     got unsigned int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1801:46: sparse:     expected restricted __le32 [usertype] init_flags
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1801:46: sparse:     got unsigned int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1806:42: sparse: sparse: invalid assignment: |=
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1806:42: sparse:    left side has type restricted __le16
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1806:42: sparse:    right side has type int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1809:39: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] rx_id @@     got int @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1809:39: sparse:     expected restricted __le16 [usertype] rx_id
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1809:39: sparse:     got int
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1845:54: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1845:54: sparse:     expected restricted __le32 [usertype] lo
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1845:54: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1846:54: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1846:54: sparse:     expected restricted __le32 [usertype] hi
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1846:54: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1851:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1851:46: sparse:     expected restricted __le32 [usertype] lo
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1851:46: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1852:46: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1852:46: sparse:     expected restricted __le32 [usertype] hi
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:1852:46: sparse:     got unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2001:47: sparse: sparse: cast to restricted __le32
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2003:54: sparse: sparse: cast to restricted __le32
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2076:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] @@     got restricted __le32 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2076:22: sparse:     expected unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2076:22: sparse:     got restricted __le32 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2078:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] @@     got restricted __le32 [usertype] @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2078:22: sparse:     expected unsigned int [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2078:22: sparse:     got restricted __le32 [usertype]
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2146:45: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] lo @@     got unsigned long long @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2146:45: sparse:     expected restricted __le32 [usertype] lo
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2146:45: sparse:     got unsigned long long
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2147:45: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] hi @@     got unsigned long long @@
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2147:45: sparse:     expected restricted __le32 [usertype] hi
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:2147:45: sparse:     got unsigned long long

vim +1665 drivers/scsi/bnx2fc/bnx2fc_hwi.c

853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1487  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1488  void bnx2fc_init_seq_cleanup_task(struct bnx2fc_cmd *seq_clnp_req,
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1489  				  struct fcoe_task_ctx_entry *task,
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1490  				  struct bnx2fc_cmd *orig_io_req,
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1491  				  u32 offset)
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1492  {
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1493  	struct scsi_cmnd *sc_cmd = orig_io_req->sc_cmd;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1494  	struct bnx2fc_rport *tgt = seq_clnp_req->tgt;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1495  	struct fcoe_bd_ctx *bd = orig_io_req->bd_tbl->bd_tbl;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1496  	struct fcoe_ext_mul_sges_ctx *sgl;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1497  	u8 task_type = FCOE_TASK_TYPE_SEQUENCE_CLEANUP;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1498  	u8 orig_task_type;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1499  	u16 orig_xid = orig_io_req->xid;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1500  	u32 context_id = tgt->context_id;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1501  	u64 phys_addr = (u64)orig_io_req->bd_tbl->bd_tbl_dma;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1502  	u32 orig_offset = offset;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1503  	int bd_count;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1504  	int i;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1505  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1506  	memset(task, 0, sizeof(struct fcoe_task_ctx_entry));
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1507  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1508  	if (sc_cmd->sc_data_direction == DMA_TO_DEVICE)
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1509  		orig_task_type = FCOE_TASK_TYPE_WRITE;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1510  	else
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1511  		orig_task_type = FCOE_TASK_TYPE_READ;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1512  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1513  	/* Tx flags */
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1514  	task->txwr_rxrd.const_ctx.tx_flags =
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1515  				FCOE_TASK_TX_STATE_SEQUENCE_CLEANUP <<
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1516  				FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE_SHIFT;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1517  	/* init flags */
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1518  	task->txwr_rxrd.const_ctx.init_flags = task_type <<
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1519  				FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1520  	task->txwr_rxrd.const_ctx.init_flags |= FCOE_TASK_CLASS_TYPE_3 <<
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1521  				FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE_SHIFT;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1522  	task->rxwr_txrd.const_ctx.init_flags = context_id <<
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1523  				FCOE_TCE_RX_WR_TX_RD_CONST_CID_SHIFT;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1524  	task->rxwr_txrd.const_ctx.init_flags = context_id <<
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1525  				FCOE_TCE_RX_WR_TX_RD_CONST_CID_SHIFT;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1526  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1527  	task->txwr_rxrd.union_ctx.cleanup.ctx.cleaned_task_id = orig_xid;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1528  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1529  	task->txwr_rxrd.union_ctx.cleanup.ctx.rolled_tx_seq_cnt = 0;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1530  	task->txwr_rxrd.union_ctx.cleanup.ctx.rolled_tx_data_offset = offset;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1531  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1532  	bd_count = orig_io_req->bd_tbl->bd_valid;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1533  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1534  	/* obtain the appropriate bd entry from relative offset */
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1535  	for (i = 0; i < bd_count; i++) {
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1536  		if (offset < bd[i].buf_len)
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1537  			break;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1538  		offset -= bd[i].buf_len;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1539  	}
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1540  	phys_addr += (i * sizeof(struct fcoe_bd_ctx));
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1541  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1542  	if (orig_task_type == FCOE_TASK_TYPE_WRITE) {
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1543  		task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_addr.lo =
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1544  				(u32)phys_addr;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1545  		task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_addr.hi =
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1546  				(u32)((u64)phys_addr >> 32);
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1547  		task->txwr_only.sgl_ctx.sgl.mul_sgl.sgl_size =
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1548  				bd_count;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1549  		task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_off =
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1550  				offset; /* adjusted offset */
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1551  		task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_idx = i;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1552  	} else {
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1553  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1554  		/* Multiple SGEs were used for this IO */
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1555  		sgl = &task->rxwr_only.union_ctx.read_info.sgl_ctx.sgl;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1556  		sgl->mul_sgl.cur_sge_addr.lo = (u32)phys_addr;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1557  		sgl->mul_sgl.cur_sge_addr.hi = (u32)((u64)phys_addr >> 32);
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1558  		sgl->mul_sgl.sgl_size = bd_count;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1559  		sgl->mul_sgl.cur_sge_off = offset; /*adjusted offset */
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1560  		sgl->mul_sgl.cur_sge_idx = i;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1561  
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1562  		memset(&task->rxwr_only.rx_seq_ctx, 0,
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1563  		       sizeof(struct fcoe_rx_seq_ctx));
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1564  		task->rxwr_only.rx_seq_ctx.low_exp_ro = orig_offset;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1565  		task->rxwr_only.rx_seq_ctx.high_exp_ro = orig_offset;
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1566  	}
6c5a7ce4f176b6 Bhanu Prakash Gollapudi 2011-07-27  1567  }
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1568  void bnx2fc_init_cleanup_task(struct bnx2fc_cmd *io_req,
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1569  			      struct fcoe_task_ctx_entry *task,
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1570  			      u16 orig_xid)
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1571  {
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1572  	u8 task_type = FCOE_TASK_TYPE_EXCHANGE_CLEANUP;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1573  	struct bnx2fc_rport *tgt = io_req->tgt;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1574  	u32 context_id = tgt->context_id;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1575  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1576  	memset(task, 0, sizeof(struct fcoe_task_ctx_entry));
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1577  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1578  	/* Tx Write Rx Read */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1579  	/* init flags */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1580  	task->txwr_rxrd.const_ctx.init_flags = task_type <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1581  				FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1582  	task->txwr_rxrd.const_ctx.init_flags |= FCOE_TASK_CLASS_TYPE_3 <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1583  				FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE_SHIFT;
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1584  	if (tgt->dev_type == TYPE_TAPE)
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1585  		task->txwr_rxrd.const_ctx.init_flags |=
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1586  				FCOE_TASK_DEV_TYPE_TAPE <<
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1587  				FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT;
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1588  	else
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1589  		task->txwr_rxrd.const_ctx.init_flags |=
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1590  				FCOE_TASK_DEV_TYPE_DISK <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1591  				FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1592  	task->txwr_rxrd.union_ctx.cleanup.ctx.cleaned_task_id = orig_xid;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1593  
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1594  	/* Tx flags */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1595  	task->txwr_rxrd.const_ctx.tx_flags =
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1596  				FCOE_TASK_TX_STATE_EXCHANGE_CLEANUP <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1597  				FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE_SHIFT;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1598  
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1599  	/* Rx Read Tx Write */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1600  	task->rxwr_txrd.const_ctx.init_flags = context_id <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1601  				FCOE_TCE_RX_WR_TX_RD_CONST_CID_SHIFT;
619c5cb6885b93 Vlad Zolotarov          2011-06-14 @1602  	task->rxwr_txrd.var_ctx.rx_flags |= 1 <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1603  				FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME_SHIFT;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1604  }
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1605  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1606  void bnx2fc_init_mp_task(struct bnx2fc_cmd *io_req,
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1607  				struct fcoe_task_ctx_entry *task)
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1608  {
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1609  	struct bnx2fc_mp_req *mp_req = &(io_req->mp_req);
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1610  	struct bnx2fc_rport *tgt = io_req->tgt;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1611  	struct fc_frame_header *fc_hdr;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1612  	struct fcoe_ext_mul_sges_ctx *sgl;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1613  	u8 task_type = 0;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1614  	u64 *hdr;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1615  	u64 temp_hdr[3];
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1616  	u32 context_id;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1617  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1618  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1619  	/* Obtain task_type */
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1620  	if ((io_req->cmd_type == BNX2FC_TASK_MGMT_CMD) ||
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1621  	    (io_req->cmd_type == BNX2FC_ELS)) {
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1622  		task_type = FCOE_TASK_TYPE_MIDPATH;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1623  	} else if (io_req->cmd_type == BNX2FC_ABTS) {
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1624  		task_type = FCOE_TASK_TYPE_ABTS;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1625  	}
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1626  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1627  	memset(task, 0, sizeof(struct fcoe_task_ctx_entry));
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1628  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1629  	/* Setup the task from io_req for easy reference */
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1630  	io_req->task = task;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1631  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1632  	BNX2FC_IO_DBG(io_req, "Init MP task for cmd_type = %d task_type = %d\n",
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1633  		io_req->cmd_type, task_type);
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1634  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1635  	/* Tx only */
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1636  	if ((task_type == FCOE_TASK_TYPE_MIDPATH) ||
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1637  	    (task_type == FCOE_TASK_TYPE_UNSOLICITED)) {
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1638  		task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_addr.lo =
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1639  				(u32)mp_req->mp_req_bd_dma;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1640  		task->txwr_only.sgl_ctx.sgl.mul_sgl.cur_sge_addr.hi =
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1641  				(u32)((u64)mp_req->mp_req_bd_dma >> 32);
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1642  		task->txwr_only.sgl_ctx.sgl.mul_sgl.sgl_size = 1;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1643  	}
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1644  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1645  	/* Tx Write Rx Read */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1646  	/* init flags */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1647  	task->txwr_rxrd.const_ctx.init_flags = task_type <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1648  				FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT;
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1649  	if (tgt->dev_type == TYPE_TAPE)
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1650  		task->txwr_rxrd.const_ctx.init_flags |=
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1651  				FCOE_TASK_DEV_TYPE_TAPE <<
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1652  				FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT;
f3820b719d91a0 Bhanu Prakash Gollapudi 2011-07-27  1653  	else
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1654  		task->txwr_rxrd.const_ctx.init_flags |=
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1655  				FCOE_TASK_DEV_TYPE_DISK <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1656  				FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1657  	task->txwr_rxrd.const_ctx.init_flags |= FCOE_TASK_CLASS_TYPE_3 <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1658  				FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE_SHIFT;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1659  
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1660  	/* tx flags */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1661  	task->txwr_rxrd.const_ctx.tx_flags = FCOE_TASK_TX_STATE_INIT <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1662  				FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE_SHIFT;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1663  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1664  	/* Rx Write Tx Read */
619c5cb6885b93 Vlad Zolotarov          2011-06-14 @1665  	task->rxwr_txrd.const_ctx.data_2_trns = io_req->data_xfer_len;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1666  
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1667  	/* rx flags */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1668  	task->rxwr_txrd.var_ctx.rx_flags |= 1 <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1669  				FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME_SHIFT;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1670  
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1671  	context_id = tgt->context_id;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1672  	task->rxwr_txrd.const_ctx.init_flags = context_id <<
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1673  				FCOE_TCE_RX_WR_TX_RD_CONST_CID_SHIFT;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1674  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1675  	fc_hdr = &(mp_req->req_fc_hdr);
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1676  	if (task_type == FCOE_TASK_TYPE_MIDPATH) {
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1677  		fc_hdr->fh_ox_id = cpu_to_be16(io_req->xid);
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1678  		fc_hdr->fh_rx_id = htons(0xffff);
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1679  		task->rxwr_txrd.var_ctx.rx_id = 0xffff;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1680  	} else if (task_type == FCOE_TASK_TYPE_UNSOLICITED) {
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1681  		fc_hdr->fh_rx_id = cpu_to_be16(io_req->xid);
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1682  	}
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1683  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1684  	/* Fill FC Header into middle path buffer */
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1685  	hdr = (u64 *) &task->txwr_rxrd.union_ctx.tx_frame.fc_hdr;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1686  	memcpy(temp_hdr, fc_hdr, sizeof(temp_hdr));
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1687  	hdr[0] = cpu_to_be64(temp_hdr[0]);
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1688  	hdr[1] = cpu_to_be64(temp_hdr[1]);
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1689  	hdr[2] = cpu_to_be64(temp_hdr[2]);
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1690  
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1691  	/* Rx Only */
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1692  	if (task_type == FCOE_TASK_TYPE_MIDPATH) {
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1693  		sgl = &task->rxwr_only.union_ctx.read_info.sgl_ctx.sgl;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1694  
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1695  		sgl->mul_sgl.cur_sge_addr.lo = (u32)mp_req->mp_resp_bd_dma;
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1696  		sgl->mul_sgl.cur_sge_addr.hi =
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1697  				(u32)((u64)mp_req->mp_resp_bd_dma >> 32);
619c5cb6885b93 Vlad Zolotarov          2011-06-14  1698  		sgl->mul_sgl.sgl_size = 1;
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1699  	}
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1700  }
853e2bd2103aaa Bhanu Gollapudi         2011-02-04  1701  

:::::: The code at line 1665 was first introduced by commit
:::::: 619c5cb6885b936c44ae1422ef805b69c6291485 New 7.0 FW: bnx2x, cnic, bnx2i, bnx2fc

:::::: TO: Vlad Zolotarov <vladz@broadcom.com>
:::::: CC: David S. Miller <davem@conan.davemloft.net>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2026-05-14  7:43 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202605141506.xPdfd7Ju-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=davidgow@google.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=skhan@linuxfoundation.org \
    --cc=thomas.weissschuh@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox