CC: [email protected] CC: Linux Memory Management List <[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/next/linux-next.git master head: 8ca403f3e7a23c4513046ad8d107adfbe4703362 commit: 072ae05a044f726fd5dfad1d27bc865013ba02a6 [6010/6860] scsi: qedi: Add support for fastpath doorbell recovery :::::: branch date: 11 hours ago :::::: commit date: 2 days ago config: arc-allyesconfig (attached as .config) compiler: arceb-elf-gcc (GCC) 10.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.3-348-gf0e6938b-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=072ae05a044f726fd5dfad1d27bc865013ba02a6 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 072ae05a044f726fd5dfad1d27bc865013ba02a6 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arc 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:630:26: sparse: sparse: cast from restricted __le32 drivers/scsi/qedi/qedi_fw.c:631:26: sparse: sparse: cast from restricted __le32 drivers/scsi/qedi/qedi_fw.c:632:20: sparse: sparse: restricted __le16 degrades to integer drivers/scsi/qedi/qedi_fw.c:636:31: sparse: sparse: cast from restricted __le32 drivers/scsi/qedi/qedi_fw.c:639:38: sparse: sparse: restricted __le32 degrades to integer drivers/scsi/qedi/qedi_fw.c:741: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:741:28: sparse: expected unsigned int [usertype] proto_itt drivers/scsi/qedi/qedi_fw.c:741:28: sparse: got restricted __le16 [usertype] itid drivers/scsi/qedi/qedi_fw.c:751: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:751:19: sparse: expected unsigned int [usertype] iscsi_cid drivers/scsi/qedi/qedi_fw.c:751:19: sparse: got restricted __le16 [usertype] conn_id drivers/scsi/qedi/qedi_fw.c:802:9: sparse: sparse: cast to restricted itt_t drivers/scsi/qedi/qedi_fw.c:864: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:864:20: sparse: expected unsigned int [usertype] iscsi_cid drivers/scsi/qedi/qedi_fw.c:864:20: sparse: got restricted __le16 [usertype] conn_id drivers/scsi/qedi/qedi_fw.c:895:50: sparse: sparse: cast from restricted itt_t drivers/scsi/qedi/qedi_fw.c:895:40: sparse: sparse: restricted __le16 degrades to integer drivers/scsi/qedi/qedi_fw.c:900:48: sparse: sparse: restricted __le32 degrades to integer drivers/scsi/qedi/qedi_fw.c:899:49: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] itid @@ got unsigned int @@ drivers/scsi/qedi/qedi_fw.c:899:49: sparse: expected restricted __le16 [usertype] itid drivers/scsi/qedi/qedi_fw.c:899:49: sparse: got unsigned int >> drivers/scsi/qedi/qedi_fw.c:939: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:939:40: sparse: expected restricted __le16 [usertype] sq_prod drivers/scsi/qedi/qedi_fw.c:939:40: sparse: got unsigned short [usertype] fw_sq_prod_idx drivers/scsi/qedi/qedi_fw.c:1015: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:1015:40: sparse: expected restricted __le32 [addressable] [assigned] [usertype] isid_tabc drivers/scsi/qedi/qedi_fw.c:1015:40: sparse: got unsigned int drivers/scsi/qedi/qedi_fw.c:1016: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:1016:37: sparse: expected restricted __le16 [addressable] [assigned] [usertype] isid_d drivers/scsi/qedi/qedi_fw.c:1016:37: sparse: got unsigned short drivers/scsi/qedi/qedi_fw.c:1018: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:1018:35: sparse: expected restricted __le16 [addressable] [assigned] [usertype] tsih drivers/scsi/qedi/qedi_fw.c:1018:35: sparse: got restricted __be16 [usertype] tsih drivers/scsi/qedi/qedi_fw.c:1019: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:1019:47: sparse: expected restricted __le32 [addressable] [assigned] [usertype] hdr_second_dword drivers/scsi/qedi/qedi_fw.c:1019:47: sparse: got int drivers/scsi/qedi/qedi_fw.c:1022:36: sparse: sparse: cast to restricted itt_t drivers/scsi/qedi/qedi_fw.c:1022: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:1022:34: sparse: expected restricted __le32 [addressable] [assigned] [usertype] itt drivers/scsi/qedi/qedi_fw.c:1022:34: sparse: got unsigned int [usertype] drivers/scsi/qedi/qedi_fw.c:1023: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:1023:34: sparse: expected restricted __le16 [addressable] [assigned] [usertype] cid drivers/scsi/qedi/qedi_fw.c:1023:34: sparse: got unsigned int [usertype] iscsi_conn_id drivers/scsi/qedi/qedi_fw.c:1024: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:1024:37: sparse: expected restricted __le32 [addressable] [assigned] [usertype] cmd_sn drivers/scsi/qedi/qedi_fw.c:1024:37: sparse: got unsigned int [usertype] drivers/scsi/qedi/qedi_fw.c:1025: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:1025:42: sparse: expected restricted __le32 [addressable] [assigned] [usertype] exp_stat_sn drivers/scsi/qedi/qedi_fw.c:1025:42: sparse: got unsigned int [usertype] drivers/scsi/qedi/qedi_fw.c:1031: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:1031:45: sparse: expected restricted __le32 [addressable] [assigned] [usertype] lo drivers/scsi/qedi/qedi_fw.c:1031: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] hi @@ got unsigned int [usertype] @@ drivers/scsi/qedi/qedi_fw.c:1033:45: sparse: expected restricted __le32 [addressable] [assigned] [usertype] hi drivers/scsi/qedi/qedi_fw.c:1033:45: sparse: got unsigned int [usertype] drivers/scsi/qedi/qedi_fw.c:1040: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:1040:45: sparse: expected restricted __le32 [addressable] [assigned] [usertype] lo drivers/scsi/qedi/qedi_fw.c:1040:45: sparse: got unsigned int [usertype] drivers/scsi/qedi/qedi_fw.c:1042: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:1042:45: sparse: expected restricted __le32 [addressable] [assigned] [usertype] hi drivers/scsi/qedi/qedi_fw.c:1042:45: sparse: got unsigned int [usertype] drivers/scsi/qedi/qedi_fw.c:1044:46: sparse: sparse: too many warnings vim +939 drivers/scsi/qedi/qedi_fw.c ace7f46ba5fde7 Manish Rangankar 2016-12-01 834 ace7f46ba5fde7 Manish Rangankar 2016-12-01 835 void qedi_fp_process_cqes(struct qedi_work *work) ace7f46ba5fde7 Manish Rangankar 2016-12-01 836 { ace7f46ba5fde7 Manish Rangankar 2016-12-01 837 struct qedi_ctx *qedi = work->qedi; ace7f46ba5fde7 Manish Rangankar 2016-12-01 838 union iscsi_cqe *cqe = &work->cqe; ace7f46ba5fde7 Manish Rangankar 2016-12-01 839 struct iscsi_task *task = NULL; ace7f46ba5fde7 Manish Rangankar 2016-12-01 840 struct iscsi_nopout *nopout_hdr; ace7f46ba5fde7 Manish Rangankar 2016-12-01 841 struct qedi_conn *q_conn; ace7f46ba5fde7 Manish Rangankar 2016-12-01 842 struct iscsi_conn *conn; ace7f46ba5fde7 Manish Rangankar 2016-12-01 843 struct qedi_cmd *qedi_cmd; ace7f46ba5fde7 Manish Rangankar 2016-12-01 844 u32 comp_type; ace7f46ba5fde7 Manish Rangankar 2016-12-01 845 u32 iscsi_cid; ace7f46ba5fde7 Manish Rangankar 2016-12-01 846 u32 hdr_opcode; ace7f46ba5fde7 Manish Rangankar 2016-12-01 847 u16 que_idx = work->que_idx; ace7f46ba5fde7 Manish Rangankar 2016-12-01 848 u8 cqe_err_bits = 0; ace7f46ba5fde7 Manish Rangankar 2016-12-01 849 ace7f46ba5fde7 Manish Rangankar 2016-12-01 850 comp_type = cqe->cqe_common.cqe_type; ace7f46ba5fde7 Manish Rangankar 2016-12-01 851 hdr_opcode = cqe->cqe_common.iscsi_hdr.common.hdr_first_byte; ace7f46ba5fde7 Manish Rangankar 2016-12-01 852 cqe_err_bits = ace7f46ba5fde7 Manish Rangankar 2016-12-01 853 cqe->cqe_common.error_bitmap.error_bits.cqe_error_status_bits; ace7f46ba5fde7 Manish Rangankar 2016-12-01 854 ace7f46ba5fde7 Manish Rangankar 2016-12-01 855 QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN, ace7f46ba5fde7 Manish Rangankar 2016-12-01 856 "fw_cid=0x%x, cqe type=0x%x, opcode=0x%x\n", ace7f46ba5fde7 Manish Rangankar 2016-12-01 857 cqe->cqe_common.conn_id, comp_type, hdr_opcode); ace7f46ba5fde7 Manish Rangankar 2016-12-01 858 ace7f46ba5fde7 Manish Rangankar 2016-12-01 859 if (comp_type >= MAX_ISCSI_CQES_TYPE) { ace7f46ba5fde7 Manish Rangankar 2016-12-01 860 QEDI_WARN(&qedi->dbg_ctx, "Invalid CqE type\n"); ace7f46ba5fde7 Manish Rangankar 2016-12-01 861 return; ace7f46ba5fde7 Manish Rangankar 2016-12-01 862 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 863 ace7f46ba5fde7 Manish Rangankar 2016-12-01 @864 iscsi_cid = cqe->cqe_common.conn_id; ace7f46ba5fde7 Manish Rangankar 2016-12-01 865 q_conn = qedi->cid_que.conn_cid_tbl[iscsi_cid]; ace7f46ba5fde7 Manish Rangankar 2016-12-01 866 if (!q_conn) { ace7f46ba5fde7 Manish Rangankar 2016-12-01 867 QEDI_WARN(&qedi->dbg_ctx, ace7f46ba5fde7 Manish Rangankar 2016-12-01 868 "Session no longer exists for cid=0x%x!!\n", ace7f46ba5fde7 Manish Rangankar 2016-12-01 869 iscsi_cid); ace7f46ba5fde7 Manish Rangankar 2016-12-01 870 return; ace7f46ba5fde7 Manish Rangankar 2016-12-01 871 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 872 ace7f46ba5fde7 Manish Rangankar 2016-12-01 873 conn = q_conn->cls_conn->dd_data; ace7f46ba5fde7 Manish Rangankar 2016-12-01 874 ace7f46ba5fde7 Manish Rangankar 2016-12-01 875 if (unlikely(cqe_err_bits && ace7f46ba5fde7 Manish Rangankar 2016-12-01 876 GET_FIELD(cqe_err_bits, ace7f46ba5fde7 Manish Rangankar 2016-12-01 877 CQE_ERROR_BITMAP_DATA_DIGEST_ERR))) { ace7f46ba5fde7 Manish Rangankar 2016-12-01 878 iscsi_conn_failure(conn, ISCSI_ERR_DATA_DGST); ace7f46ba5fde7 Manish Rangankar 2016-12-01 879 return; ace7f46ba5fde7 Manish Rangankar 2016-12-01 880 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 881 ace7f46ba5fde7 Manish Rangankar 2016-12-01 882 switch (comp_type) { ace7f46ba5fde7 Manish Rangankar 2016-12-01 883 case ISCSI_CQE_TYPE_SOLICITED: ace7f46ba5fde7 Manish Rangankar 2016-12-01 884 case ISCSI_CQE_TYPE_SOLICITED_WITH_SENSE: ace7f46ba5fde7 Manish Rangankar 2016-12-01 885 qedi_cmd = container_of(work, struct qedi_cmd, cqe_work); ace7f46ba5fde7 Manish Rangankar 2016-12-01 886 task = qedi_cmd->task; ace7f46ba5fde7 Manish Rangankar 2016-12-01 887 if (!task) { ace7f46ba5fde7 Manish Rangankar 2016-12-01 888 QEDI_WARN(&qedi->dbg_ctx, "task is NULL\n"); ace7f46ba5fde7 Manish Rangankar 2016-12-01 889 return; ace7f46ba5fde7 Manish Rangankar 2016-12-01 890 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 891 ace7f46ba5fde7 Manish Rangankar 2016-12-01 892 /* Process NOPIN local completion */ ace7f46ba5fde7 Manish Rangankar 2016-12-01 893 nopout_hdr = (struct iscsi_nopout *)task->hdr; ace7f46ba5fde7 Manish Rangankar 2016-12-01 894 if ((nopout_hdr->itt == RESERVED_ITT) && ace7f46ba5fde7 Manish Rangankar 2016-12-01 895 (cqe->cqe_solicited.itid != (u16)RESERVED_ITT)) { ace7f46ba5fde7 Manish Rangankar 2016-12-01 896 qedi_process_nopin_local_cmpl(qedi, &cqe->cqe_solicited, ace7f46ba5fde7 Manish Rangankar 2016-12-01 897 task, q_conn); ace7f46ba5fde7 Manish Rangankar 2016-12-01 898 } else { ace7f46ba5fde7 Manish Rangankar 2016-12-01 899 cqe->cqe_solicited.itid = ace7f46ba5fde7 Manish Rangankar 2016-12-01 900 qedi_get_itt(cqe->cqe_solicited); ace7f46ba5fde7 Manish Rangankar 2016-12-01 901 /* Process other solicited responses */ ace7f46ba5fde7 Manish Rangankar 2016-12-01 902 qedi_mtask_completion(qedi, cqe, task, q_conn, que_idx); ace7f46ba5fde7 Manish Rangankar 2016-12-01 903 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 904 break; ace7f46ba5fde7 Manish Rangankar 2016-12-01 905 case ISCSI_CQE_TYPE_UNSOLICITED: ace7f46ba5fde7 Manish Rangankar 2016-12-01 906 switch (hdr_opcode) { ace7f46ba5fde7 Manish Rangankar 2016-12-01 907 case ISCSI_OPCODE_NOP_IN: ace7f46ba5fde7 Manish Rangankar 2016-12-01 908 qedi_process_nopin_mesg(qedi, cqe, task, q_conn, ace7f46ba5fde7 Manish Rangankar 2016-12-01 909 que_idx); ace7f46ba5fde7 Manish Rangankar 2016-12-01 910 break; ace7f46ba5fde7 Manish Rangankar 2016-12-01 911 case ISCSI_OPCODE_ASYNC_MSG: ace7f46ba5fde7 Manish Rangankar 2016-12-01 912 qedi_process_async_mesg(qedi, cqe, task, q_conn, ace7f46ba5fde7 Manish Rangankar 2016-12-01 913 que_idx); ace7f46ba5fde7 Manish Rangankar 2016-12-01 914 break; ace7f46ba5fde7 Manish Rangankar 2016-12-01 915 case ISCSI_OPCODE_REJECT: ace7f46ba5fde7 Manish Rangankar 2016-12-01 916 qedi_process_reject_mesg(qedi, cqe, task, q_conn, ace7f46ba5fde7 Manish Rangankar 2016-12-01 917 que_idx); ace7f46ba5fde7 Manish Rangankar 2016-12-01 918 break; ace7f46ba5fde7 Manish Rangankar 2016-12-01 919 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 920 goto exit_fp_process; ace7f46ba5fde7 Manish Rangankar 2016-12-01 921 case ISCSI_CQE_TYPE_DUMMY: ace7f46ba5fde7 Manish Rangankar 2016-12-01 922 QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, "Dummy CqE\n"); ace7f46ba5fde7 Manish Rangankar 2016-12-01 923 goto exit_fp_process; ace7f46ba5fde7 Manish Rangankar 2016-12-01 924 case ISCSI_CQE_TYPE_TASK_CLEANUP: ace7f46ba5fde7 Manish Rangankar 2016-12-01 925 QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_SCSI_TM, "CleanUp CqE\n"); 5b04d050cde44c Mike Christie 2021-05-25 926 qedi_process_cmd_cleanup_resp(qedi, &cqe->cqe_solicited, conn); ace7f46ba5fde7 Manish Rangankar 2016-12-01 927 goto exit_fp_process; ace7f46ba5fde7 Manish Rangankar 2016-12-01 928 default: ace7f46ba5fde7 Manish Rangankar 2016-12-01 929 QEDI_ERR(&qedi->dbg_ctx, "Error cqe.\n"); ace7f46ba5fde7 Manish Rangankar 2016-12-01 930 break; ace7f46ba5fde7 Manish Rangankar 2016-12-01 931 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 932 ace7f46ba5fde7 Manish Rangankar 2016-12-01 933 exit_fp_process: ace7f46ba5fde7 Manish Rangankar 2016-12-01 934 return; ace7f46ba5fde7 Manish Rangankar 2016-12-01 935 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 936 ace7f46ba5fde7 Manish Rangankar 2016-12-01 937 static void qedi_ring_doorbell(struct qedi_conn *qedi_conn) ace7f46ba5fde7 Manish Rangankar 2016-12-01 938 { 072ae05a044f72 Shai Malin 2021-08-05 @939 qedi_conn->ep->db_data.sq_prod = qedi_conn->ep->fw_sq_prod_idx; ace7f46ba5fde7 Manish Rangankar 2016-12-01 940 072ae05a044f72 Shai Malin 2021-08-05 941 /* wmb - Make sure fw idx is coherent */ 072ae05a044f72 Shai Malin 2021-08-05 942 wmb(); 072ae05a044f72 Shai Malin 2021-08-05 943 writel(*(u32 *)&qedi_conn->ep->db_data, qedi_conn->ep->p_doorbell); ace7f46ba5fde7 Manish Rangankar 2016-12-01 944 ace7f46ba5fde7 Manish Rangankar 2016-12-01 945 /* Make sure fw write idx is coherent, and include both memory barriers ace7f46ba5fde7 Manish Rangankar 2016-12-01 946 * as a failsafe as for some architectures the call is the same but on ace7f46ba5fde7 Manish Rangankar 2016-12-01 947 * others they are two different assembly operations. ace7f46ba5fde7 Manish Rangankar 2016-12-01 948 */ ace7f46ba5fde7 Manish Rangankar 2016-12-01 949 wmb(); ace7f46ba5fde7 Manish Rangankar 2016-12-01 950 QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_MP_REQ, ace7f46ba5fde7 Manish Rangankar 2016-12-01 951 "prod_idx=0x%x, fw_prod_idx=0x%x, cid=0x%x\n", ace7f46ba5fde7 Manish Rangankar 2016-12-01 952 qedi_conn->ep->sq_prod_idx, qedi_conn->ep->fw_sq_prod_idx, ace7f46ba5fde7 Manish Rangankar 2016-12-01 953 qedi_conn->iscsi_conn_id); ace7f46ba5fde7 Manish Rangankar 2016-12-01 954 } ace7f46ba5fde7 Manish Rangankar 2016-12-01 955 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
