CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Shai Malin <[email protected]>
CC: "Martin K. Petersen" <[email protected]>
CC: Manish Rangankar <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   2293be58d6a18cab800e25e42081bacb75c05752
commit: 9757f8af04423f60b6ecbd6802ff4e3f618fbb44 scsi: qedi: Add support for 
fastpath doorbell recovery
date:   7 months ago
:::::: branch date: 16 hours ago
:::::: commit date: 7 months ago
config: i386-allmodconfig 
(https://download.01.org/0day-ci/archive/20220227/[email protected]/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9757f8af04423f60b6ecbd6802ff4e3f618fbb44
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9757f8af04423f60b6ecbd6802ff4e3f618fbb44
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir 
ARCH=i386 SHELL=/bin/bash drivers/net/wireless/mediatek/mt76/mt7915/ 
drivers/scsi/qedi/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
   drivers/scsi/qedi/qedi_fw.c:52:31: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:53:31: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:55:28: sparse: sparse: cast from restricted 
__le16
   drivers/scsi/qedi/qedi_fw.c:55:26: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __be16 [usertype] 
t2wait @@     got restricted __be32 [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:55:26: sparse:     expected restricted __be16 
[usertype] t2wait
   drivers/scsi/qedi/qedi_fw.c:55:26: sparse:     got restricted __be32 
[usertype]
   drivers/scsi/qedi/qedi_fw.c:56:30: sparse: sparse: cast from restricted 
__le16
   drivers/scsi/qedi/qedi_fw.c:56:28: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __be16 [usertype] 
t2retain @@     got restricted __be32 [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:56:28: sparse:     expected restricted __be16 
[usertype] t2retain
   drivers/scsi/qedi/qedi_fw.c:56:28: sparse:     got restricted __be32 
[usertype]
   drivers/scsi/qedi/qedi_fw.c:105:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:105:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:105:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:109:29: sparse: sparse: restricted __le16 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:111:27: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __be32 [usertype] 
ttt @@     got restricted __le32 [usertype] ttt @@
   drivers/scsi/qedi/qedi_fw.c:111:27: sparse:     expected restricted __be32 
[usertype] ttt
   drivers/scsi/qedi/qedi_fw.c:111:27: sparse:     got restricted __le32 
[usertype] ttt
   drivers/scsi/qedi/qedi_fw.c:112:32: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:113:35: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:114:35: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:116:36: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:211:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:211:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:211:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:214:29: sparse: sparse: restricted __le16 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:216:32: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:217:36: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:218:35: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:282:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:282:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:282:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:285:29: sparse: sparse: restricted __le16 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:287:28: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __be16 [usertype] 
tsih @@     got restricted __le16 [usertype] tsih @@
   drivers/scsi/qedi/qedi_fw.c:287:28: sparse:     expected restricted __be16 
[usertype] tsih
   drivers/scsi/qedi/qedi_fw.c:287:28: sparse:     got restricted __le16 
[usertype] tsih
   drivers/scsi/qedi/qedi_fw.c:288:32: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:289:35: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:290:35: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:293:37: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:331:13: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned short [usertype] idx 
@@     got restricted __le16 [usertype] rqe_opaque @@
   drivers/scsi/qedi/qedi_fw.c:331:13: sparse:     expected unsigned short 
[usertype] idx
   drivers/scsi/qedi/qedi_fw.c:331:13: sparse:     got restricted __le16 
[usertype] rqe_opaque
   drivers/scsi/qedi/qedi_fw.c:366:13: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned short [usertype] idx 
@@     got restricted __le16 [usertype] rqe_opaque @@
   drivers/scsi/qedi/qedi_fw.c:366:13: sparse:     expected unsigned short 
[usertype] idx
   drivers/scsi/qedi/qedi_fw.c:366:13: sparse:     got restricted __le16 
[usertype] rqe_opaque
   drivers/scsi/qedi/qedi_fw.c:384:41: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le16 [usertype] 
opaque @@     got restricted __le32 [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:384:41: sparse:     expected restricted __le16 
[usertype] opaque
   drivers/scsi/qedi/qedi_fw.c:384:41: sparse:     got restricted __le32 
[usertype]
   drivers/scsi/qedi/qedi_fw.c:427:29: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:434:26: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:435:26: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:436:23: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:437:20: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:453:28: sparse: sparse: restricted __le16 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:497:32: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:513:18: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:513:16: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int @@     got 
restricted __be32 [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:513:16: sparse:     expected unsigned int
   drivers/scsi/qedi/qedi_fw.c:513:16: sparse:     got restricted __be32 
[usertype]
   drivers/scsi/qedi/qedi_fw.c:514:18: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:514:16: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int @@     got 
restricted __be32 [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:514:16: sparse:     expected unsigned int
   drivers/scsi/qedi/qedi_fw.c:514:16: sparse:     got restricted __be32 
[usertype]
   drivers/scsi/qedi/qedi_fw.c:516:31: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:517:31: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:518:28: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:523:28: sparse: sparse: cast from restricted 
__le16
   drivers/scsi/qedi/qedi_fw.c:524:28: sparse: sparse: cast from restricted 
__le16
   drivers/scsi/qedi/qedi_fw.c:525:28: sparse: sparse: cast from restricted 
__le16
   drivers/scsi/qedi/qedi_fw.c:548:29: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:563:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:563:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:563:9: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:565:26: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:566:26: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:567:23: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:590:20: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int [usertype] 
iscsi_cid @@     got restricted __le16 [usertype] conn_id @@
   drivers/scsi/qedi/qedi_fw.c:590:20: sparse:     expected unsigned int 
[usertype] iscsi_cid
   drivers/scsi/qedi/qedi_fw.c:590:20: sparse:     got restricted __le16 
[usertype] conn_id
   drivers/scsi/qedi/qedi_fw.c:623:26: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:624:26: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:625:20: sparse: sparse: restricted __le16 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:629:31: sparse: sparse: cast from restricted 
__le32
   drivers/scsi/qedi/qedi_fw.c:632:38: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:734:28: sparse: sparse: incorrect type in 
initializer (different base types) @@     expected unsigned int [usertype] 
proto_itt @@     got restricted __le16 [usertype] itid @@
   drivers/scsi/qedi/qedi_fw.c:734:28: sparse:     expected unsigned int 
[usertype] proto_itt
   drivers/scsi/qedi/qedi_fw.c:734:28: sparse:     got restricted __le16 
[usertype] itid
   drivers/scsi/qedi/qedi_fw.c:744:19: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int [usertype] 
iscsi_cid @@     got restricted __le16 [usertype] conn_id @@
   drivers/scsi/qedi/qedi_fw.c:744:19: sparse:     expected unsigned int 
[usertype] iscsi_cid
   drivers/scsi/qedi/qedi_fw.c:744:19: sparse:     got restricted __le16 
[usertype] conn_id
   drivers/scsi/qedi/qedi_fw.c:795:9: sparse: sparse: cast to restricted itt_t
   drivers/scsi/qedi/qedi_fw.c:857:20: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected unsigned int [usertype] 
iscsi_cid @@     got restricted __le16 [usertype] conn_id @@
   drivers/scsi/qedi/qedi_fw.c:857:20: sparse:     expected unsigned int 
[usertype] iscsi_cid
   drivers/scsi/qedi/qedi_fw.c:857:20: sparse:     got restricted __le16 
[usertype] conn_id
   drivers/scsi/qedi/qedi_fw.c:888:50: sparse: sparse: cast from restricted 
itt_t
   drivers/scsi/qedi/qedi_fw.c:888:40: sparse: sparse: restricted __le16 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:893:48: sparse: sparse: restricted __le32 
degrades to integer
   drivers/scsi/qedi/qedi_fw.c:892:49: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le16 [usertype] 
itid @@     got unsigned int @@
   drivers/scsi/qedi/qedi_fw.c:892:49: sparse:     expected restricted __le16 
[usertype] itid
   drivers/scsi/qedi/qedi_fw.c:892:49: sparse:     got unsigned int
>> drivers/scsi/qedi/qedi_fw.c:932:40: sparse: sparse: incorrect type in 
>> assignment (different base types) @@     expected restricted __le16 
>> [usertype] sq_prod @@     got unsigned short [usertype] fw_sq_prod_idx @@
   drivers/scsi/qedi/qedi_fw.c:932:40: sparse:     expected restricted __le16 
[usertype] sq_prod
   drivers/scsi/qedi/qedi_fw.c:932:40: sparse:     got unsigned short 
[usertype] fw_sq_prod_idx
   drivers/scsi/qedi/qedi_fw.c:1008:40: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] isid_tabc @@     got unsigned int @@
   drivers/scsi/qedi/qedi_fw.c:1008:40: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] isid_tabc
   drivers/scsi/qedi/qedi_fw.c:1008:40: sparse:     got unsigned int
   drivers/scsi/qedi/qedi_fw.c:1009:37: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le16 
[addressable] [assigned] [usertype] isid_d @@     got unsigned short @@
   drivers/scsi/qedi/qedi_fw.c:1009:37: sparse:     expected restricted __le16 
[addressable] [assigned] [usertype] isid_d
   drivers/scsi/qedi/qedi_fw.c:1009:37: sparse:     got unsigned short
   drivers/scsi/qedi/qedi_fw.c:1011:35: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le16 
[addressable] [assigned] [usertype] tsih @@     got restricted __be16 
[usertype] tsih @@
   drivers/scsi/qedi/qedi_fw.c:1011:35: sparse:     expected restricted __le16 
[addressable] [assigned] [usertype] tsih
   drivers/scsi/qedi/qedi_fw.c:1011:35: sparse:     got restricted __be16 
[usertype] tsih
   drivers/scsi/qedi/qedi_fw.c:1012:47: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] hdr_second_dword @@     got int @@
   drivers/scsi/qedi/qedi_fw.c:1012:47: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] hdr_second_dword
   drivers/scsi/qedi/qedi_fw.c:1012:47: sparse:     got int
   drivers/scsi/qedi/qedi_fw.c:1015:36: sparse: sparse: cast to restricted itt_t
   drivers/scsi/qedi/qedi_fw.c:1015:34: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] itt @@     got unsigned int [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:1015:34: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] itt
   drivers/scsi/qedi/qedi_fw.c:1015:34: sparse:     got unsigned int [usertype]
   drivers/scsi/qedi/qedi_fw.c:1016:34: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le16 
[addressable] [assigned] [usertype] cid @@     got unsigned int [usertype] 
iscsi_conn_id @@
   drivers/scsi/qedi/qedi_fw.c:1016:34: sparse:     expected restricted __le16 
[addressable] [assigned] [usertype] cid
   drivers/scsi/qedi/qedi_fw.c:1016:34: sparse:     got unsigned int [usertype] 
iscsi_conn_id
   drivers/scsi/qedi/qedi_fw.c:1017:37: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] cmd_sn @@     got unsigned int [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:1017:37: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] cmd_sn
   drivers/scsi/qedi/qedi_fw.c:1017:37: sparse:     got unsigned int [usertype]
   drivers/scsi/qedi/qedi_fw.c:1018:42: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] exp_stat_sn @@     got unsigned int 
[usertype] @@
   drivers/scsi/qedi/qedi_fw.c:1018:42: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] exp_stat_sn
   drivers/scsi/qedi/qedi_fw.c:1018:42: sparse:     got unsigned int [usertype]
   drivers/scsi/qedi/qedi_fw.c:1024:45: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:1024:45: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] lo
   drivers/scsi/qedi/qedi_fw.c:1024:45: sparse:     got unsigned int [usertype]
   drivers/scsi/qedi/qedi_fw.c:1026:45: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:1026:45: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] hi
   drivers/scsi/qedi/qedi_fw.c:1026:45: sparse:     got unsigned int [usertype]
   drivers/scsi/qedi/qedi_fw.c:1033:45: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] lo @@     got unsigned int [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:1033:45: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] lo
   drivers/scsi/qedi/qedi_fw.c:1033:45: sparse:     got unsigned int [usertype]
   drivers/scsi/qedi/qedi_fw.c:1035:45: sparse: sparse: incorrect type in 
assignment (different base types) @@     expected restricted __le32 
[addressable] [assigned] [usertype] hi @@     got unsigned int [usertype] @@
   drivers/scsi/qedi/qedi_fw.c:1035:45: sparse:     expected restricted __le32 
[addressable] [assigned] [usertype] hi
   drivers/scsi/qedi/qedi_fw.c:1035:45: sparse:     got unsigned int [usertype]
   drivers/scsi/qedi/qedi_fw.c:1037:46: sparse: sparse: too many warnings

vim +932 drivers/scsi/qedi/qedi_fw.c

ace7f46ba5fde7 Manish Rangankar 2016-12-01  827  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  828  void 
qedi_fp_process_cqes(struct qedi_work *work)
ace7f46ba5fde7 Manish Rangankar 2016-12-01  829  {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  830         struct qedi_ctx *qedi = 
work->qedi;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  831         union iscsi_cqe *cqe = 
&work->cqe;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  832         struct iscsi_task *task 
= NULL;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  833         struct iscsi_nopout 
*nopout_hdr;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  834         struct qedi_conn 
*q_conn;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  835         struct iscsi_conn *conn;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  836         struct qedi_cmd 
*qedi_cmd;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  837         u32 comp_type;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  838         u32 iscsi_cid;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  839         u32 hdr_opcode;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  840         u16 que_idx = 
work->que_idx;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  841         u8 cqe_err_bits = 0;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  842  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  843         comp_type = 
cqe->cqe_common.cqe_type;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  844         hdr_opcode = 
cqe->cqe_common.iscsi_hdr.common.hdr_first_byte;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  845         cqe_err_bits =
ace7f46ba5fde7 Manish Rangankar 2016-12-01  846                 
cqe->cqe_common.error_bitmap.error_bits.cqe_error_status_bits;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  847  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  848         
QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  849                   "fw_cid=0x%x, 
cqe type=0x%x, opcode=0x%x\n",
ace7f46ba5fde7 Manish Rangankar 2016-12-01  850                   
cqe->cqe_common.conn_id, comp_type, hdr_opcode);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  851  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  852         if (comp_type >= 
MAX_ISCSI_CQES_TYPE) {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  853                 
QEDI_WARN(&qedi->dbg_ctx, "Invalid CqE type\n");
ace7f46ba5fde7 Manish Rangankar 2016-12-01  854                 return;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  855         }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  856  
ace7f46ba5fde7 Manish Rangankar 2016-12-01 @857         iscsi_cid  = 
cqe->cqe_common.conn_id;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  858         q_conn = 
qedi->cid_que.conn_cid_tbl[iscsi_cid];
ace7f46ba5fde7 Manish Rangankar 2016-12-01  859         if (!q_conn) {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  860                 
QEDI_WARN(&qedi->dbg_ctx,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  861                           
"Session no longer exists for cid=0x%x!!\n",
ace7f46ba5fde7 Manish Rangankar 2016-12-01  862                           
iscsi_cid);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  863                 return;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  864         }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  865  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  866         conn = 
q_conn->cls_conn->dd_data;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  867  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  868         if 
(unlikely(cqe_err_bits &&
ace7f46ba5fde7 Manish Rangankar 2016-12-01  869                      
GET_FIELD(cqe_err_bits,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  870                                
CQE_ERROR_BITMAP_DATA_DIGEST_ERR))) {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  871                 
iscsi_conn_failure(conn, ISCSI_ERR_DATA_DGST);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  872                 return;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  873         }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  874  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  875         switch (comp_type) {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  876         case 
ISCSI_CQE_TYPE_SOLICITED:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  877         case 
ISCSI_CQE_TYPE_SOLICITED_WITH_SENSE:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  878                 qedi_cmd = 
container_of(work, struct qedi_cmd, cqe_work);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  879                 task = 
qedi_cmd->task;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  880                 if (!task) {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  881                         
QEDI_WARN(&qedi->dbg_ctx, "task is NULL\n");
ace7f46ba5fde7 Manish Rangankar 2016-12-01  882                         return;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  883                 }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  884  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  885                 /* Process 
NOPIN local completion */
ace7f46ba5fde7 Manish Rangankar 2016-12-01  886                 nopout_hdr = 
(struct iscsi_nopout *)task->hdr;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  887                 if 
((nopout_hdr->itt == RESERVED_ITT) &&
ace7f46ba5fde7 Manish Rangankar 2016-12-01  888                     
(cqe->cqe_solicited.itid != (u16)RESERVED_ITT)) {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  889                         
qedi_process_nopin_local_cmpl(qedi, &cqe->cqe_solicited,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  890                                 
                      task, q_conn);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  891                 } else {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  892                         
cqe->cqe_solicited.itid =
ace7f46ba5fde7 Manish Rangankar 2016-12-01  893                                 
               qedi_get_itt(cqe->cqe_solicited);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  894                         /* 
Process other solicited responses */
ace7f46ba5fde7 Manish Rangankar 2016-12-01  895                         
qedi_mtask_completion(qedi, cqe, task, q_conn, que_idx);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  896                 }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  897                 break;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  898         case 
ISCSI_CQE_TYPE_UNSOLICITED:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  899                 switch 
(hdr_opcode) {
ace7f46ba5fde7 Manish Rangankar 2016-12-01  900                 case 
ISCSI_OPCODE_NOP_IN:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  901                         
qedi_process_nopin_mesg(qedi, cqe, task, q_conn,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  902                                 
                que_idx);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  903                         break;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  904                 case 
ISCSI_OPCODE_ASYNC_MSG:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  905                         
qedi_process_async_mesg(qedi, cqe, task, q_conn,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  906                                 
                que_idx);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  907                         break;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  908                 case 
ISCSI_OPCODE_REJECT:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  909                         
qedi_process_reject_mesg(qedi, cqe, task, q_conn,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  910                                 
                 que_idx);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  911                         break;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  912                 }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  913                 goto 
exit_fp_process;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  914         case 
ISCSI_CQE_TYPE_DUMMY:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  915                 
QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, "Dummy CqE\n");
ace7f46ba5fde7 Manish Rangankar 2016-12-01  916                 goto 
exit_fp_process;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  917         case 
ISCSI_CQE_TYPE_TASK_CLEANUP:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  918                 
QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, "CleanUp CqE\n");
5b04d050cde44c Mike Christie    2021-05-25  919                 
qedi_process_cmd_cleanup_resp(qedi, &cqe->cqe_solicited, conn);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  920                 goto 
exit_fp_process;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  921         default:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  922                 
QEDI_ERR(&qedi->dbg_ctx, "Error cqe.\n");
ace7f46ba5fde7 Manish Rangankar 2016-12-01  923                 break;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  924         }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  925  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  926  exit_fp_process:
ace7f46ba5fde7 Manish Rangankar 2016-12-01  927         return;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  928  }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  929  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  930  static void 
qedi_ring_doorbell(struct qedi_conn *qedi_conn)
ace7f46ba5fde7 Manish Rangankar 2016-12-01  931  {
9757f8af04423f Shai Malin       2021-08-05 @932         
qedi_conn->ep->db_data.sq_prod = qedi_conn->ep->fw_sq_prod_idx;
ace7f46ba5fde7 Manish Rangankar 2016-12-01  933  
9757f8af04423f Shai Malin       2021-08-05  934         /* wmb - Make sure fw 
idx is coherent */
9757f8af04423f Shai Malin       2021-08-05  935         wmb();
9757f8af04423f Shai Malin       2021-08-05  936         writel(*(u32 
*)&qedi_conn->ep->db_data, qedi_conn->ep->p_doorbell);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  937  
ace7f46ba5fde7 Manish Rangankar 2016-12-01  938         /* Make sure fw write 
idx is coherent, and include both memory barriers
ace7f46ba5fde7 Manish Rangankar 2016-12-01  939          * as a failsafe as for 
some architectures the call is the same but on
ace7f46ba5fde7 Manish Rangankar 2016-12-01  940          * others they are two 
different assembly operations.
ace7f46ba5fde7 Manish Rangankar 2016-12-01  941          */
ace7f46ba5fde7 Manish Rangankar 2016-12-01  942         wmb();
ace7f46ba5fde7 Manish Rangankar 2016-12-01  943         
QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_MP_REQ,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  944                   
"prod_idx=0x%x, fw_prod_idx=0x%x, cid=0x%x\n",
ace7f46ba5fde7 Manish Rangankar 2016-12-01  945                   
qedi_conn->ep->sq_prod_idx, qedi_conn->ep->fw_sq_prod_idx,
ace7f46ba5fde7 Manish Rangankar 2016-12-01  946                   
qedi_conn->iscsi_conn_id);
ace7f46ba5fde7 Manish Rangankar 2016-12-01  947  }
ace7f46ba5fde7 Manish Rangankar 2016-12-01  948  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to