Re: [PATCH] scsi: qedi: Add support for fastpath doorvell recovery

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Shai,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on scsi/for-next]
[also build test ERROR on mkp-scsi/for-next v5.14-rc4 next-20210804]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Shai-Malin/scsi-qedi-Add-support-for-fastpath-doorvell-recovery/20210804-234654
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/10706db207ac7784bf30729cba2c3ced86920e8a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Shai-Malin/scsi-qedi-Add-support-for-fastpath-doorvell-recovery/20210804-234654
        git checkout 10706db207ac7784bf30729cba2c3ced86920e8a
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/scsi/qedi/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   drivers/scsi/qedi/qedi_iscsi.c: In function 'qedi_iscsi_offload_conn':
>> drivers/scsi/qedi/qedi_iscsi.c:504:16: error: expected identifier or '(' before '->' token
     504 |  struct qedi_ep->db_data.params
         |                ^~
>> drivers/scsi/qedi/qedi_iscsi.c:592:2: error: 'rc' undeclared (first use in this function); did you mean 'rq'?
     592 |  rc = qedi_ops->common->db_recovery_add(qedi->cdev,
         |  ^~
         |  rq
   drivers/scsi/qedi/qedi_iscsi.c:592:2: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/scsi/qedi/qedi_iscsi.c:593:13: error: 'qedi_ep' is a pointer; did you mean to use '->'?
     593 |      qedi_ep.p_doorbell,
         |             ^
         |             ->
   drivers/scsi/qedi/qedi_iscsi.c:594:14: error: 'qedi_ep' is a pointer; did you mean to use '->'?
     594 |      &qedi_ep.db_data,
         |              ^
         |              ->
>> drivers/scsi/qedi/qedi_iscsi.c:598:10: error: 'rval' undeclared (first use in this function)
     598 |   return rval;
         |          ^~~~
   drivers/scsi/qedi/qedi_iscsi.c:605:21: error: 'qedi_ep' is a pointer; did you mean to use '->'?
     605 |              qedi_ep.p_doorbell,
         |                     ^
         |                     ->
   drivers/scsi/qedi/qedi_iscsi.c:606:22: error: 'qedi_ep' is a pointer; did you mean to use '->'?
     606 |              &qedi_ep.db_data);
         |                      ^
         |                      ->
   drivers/scsi/qedi/qedi_iscsi.c: In function 'qedi_ep_disconnect':
   drivers/scsi/qedi/qedi_iscsi.c:1130:2: error: 'rc' undeclared (first use in this function); did you mean 'rq'?
    1130 |  rc = qedi_ops->common->db_recovery_del(qedi->cdev,
         |  ^~
         |  rq
   drivers/scsi/qedi/qedi_iscsi.c:1131:20: error: 'qedi_ep' is a pointer; did you mean to use '->'?
    1131 |             qedi_ep.p_doorbell,
         |                    ^
         |                    ->
   drivers/scsi/qedi/qedi_iscsi.c:1132:21: error: 'qedi_ep' is a pointer; did you mean to use '->'?
    1132 |             &qedi_ep.db_data);
         |                     ^
         |                     ->
   drivers/scsi/qedi/qedi_iscsi.c: In function 'qedi_iscsi_offload_conn':
   drivers/scsi/qedi/qedi_iscsi.c:613:1: error: control reaches end of non-void function [-Werror=return-type]
     613 | }
         | ^
   cc1: some warnings being treated as errors
--
   drivers/scsi/qedi/qedi_fw.c: In function 'qedi_ring_doorbell':
>> drivers/scsi/qedi/qedi_fw.c:939:64: error: expected ';' before 'asm'
     939 |  qedi_conn->ep->db_data.sq_prod = qedi_conn->ep->fw_sq_prod_idx
         |                                                                ^
         |                                                                ;


vim +504 drivers/scsi/qedi/qedi_iscsi.c

   499	
   500	static int qedi_iscsi_offload_conn(struct qedi_endpoint *qedi_ep)
   501	{
   502		struct qed_iscsi_params_offload *conn_info;
   503		struct qedi_ctx *qedi = qedi_ep->qedi;
 > 504		struct qedi_ep->db_data.params
   505		int rval;
   506		int i;
   507	
   508		conn_info = kzalloc(sizeof(*conn_info), GFP_KERNEL);
   509		if (!conn_info) {
   510			QEDI_ERR(&qedi->dbg_ctx,
   511				 "Failed to allocate memory ep=%p\n", qedi_ep);
   512			return -ENOMEM;
   513		}
   514	
   515		ether_addr_copy(conn_info->src.mac, qedi_ep->src_mac);
   516		ether_addr_copy(conn_info->dst.mac, qedi_ep->dst_mac);
   517	
   518		conn_info->src.ip[0] = ntohl(qedi_ep->src_addr[0]);
   519		conn_info->dst.ip[0] = ntohl(qedi_ep->dst_addr[0]);
   520	
   521		if (qedi_ep->ip_type == TCP_IPV4) {
   522			conn_info->ip_version = 0;
   523			QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN,
   524				  "After ntohl: src_addr=%pI4, dst_addr=%pI4\n",
   525				  qedi_ep->src_addr, qedi_ep->dst_addr);
   526		} else {
   527			for (i = 1; i < 4; i++) {
   528				conn_info->src.ip[i] = ntohl(qedi_ep->src_addr[i]);
   529				conn_info->dst.ip[i] = ntohl(qedi_ep->dst_addr[i]);
   530			}
   531	
   532			conn_info->ip_version = 1;
   533			QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_CONN,
   534				  "After ntohl: src_addr=%pI6, dst_addr=%pI6\n",
   535				  qedi_ep->src_addr, qedi_ep->dst_addr);
   536		}
   537	
   538		conn_info->src.port = qedi_ep->src_port;
   539		conn_info->dst.port = qedi_ep->dst_port;
   540	
   541		conn_info->layer_code = ISCSI_SLOW_PATH_LAYER_CODE;
   542		conn_info->sq_pbl_addr = qedi_ep->sq_pbl_dma;
   543		conn_info->vlan_id = qedi_ep->vlan_id;
   544	
   545		SET_FIELD(conn_info->tcp_flags, TCP_OFFLOAD_PARAMS_TS_EN, 1);
   546		SET_FIELD(conn_info->tcp_flags, TCP_OFFLOAD_PARAMS_DA_EN, 1);
   547		SET_FIELD(conn_info->tcp_flags, TCP_OFFLOAD_PARAMS_DA_CNT_EN, 1);
   548		SET_FIELD(conn_info->tcp_flags, TCP_OFFLOAD_PARAMS_KA_EN, 1);
   549	
   550		conn_info->default_cq = (qedi_ep->fw_cid % qedi->num_queues);
   551	
   552		conn_info->ka_max_probe_cnt = DEF_KA_MAX_PROBE_COUNT;
   553		conn_info->dup_ack_theshold = 3;
   554		conn_info->rcv_wnd = 65535;
   555	
   556		conn_info->ss_thresh = 65535;
   557		conn_info->srtt = 300;
   558		conn_info->rtt_var = 150;
   559		conn_info->flow_label = 0;
   560		conn_info->ka_timeout = DEF_KA_TIMEOUT;
   561		conn_info->ka_interval = DEF_KA_INTERVAL;
   562		conn_info->max_rt_time = DEF_MAX_RT_TIME;
   563		conn_info->ttl = DEF_TTL;
   564		conn_info->tos_or_tc = DEF_TOS;
   565		conn_info->remote_port = qedi_ep->dst_port;
   566		conn_info->local_port = qedi_ep->src_port;
   567	
   568		conn_info->mss = qedi_calc_mss(qedi_ep->pmtu,
   569					       (qedi_ep->ip_type == TCP_IPV6),
   570					       1, (qedi_ep->vlan_id != 0));
   571	
   572		conn_info->cwnd = DEF_MAX_CWND * conn_info->mss;
   573		conn_info->rcv_wnd_scale = 4;
   574		conn_info->da_timeout_value = 200;
   575		conn_info->ack_frequency = 2;
   576	
   577		QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_INFO,
   578			  "Default cq index [%d], mss [%d]\n",
   579			  conn_info->default_cq, conn_info->mss);
   580	
   581		/* Prepare the doorbell parameters */
   582		qedi_ep->db_data.agg_flags = 0;
   583		qedi_ep->db_data.params = 0;
   584		SET_FIELD(qedi_ep->db_data.params, ISCSI_DB_DATA_DEST, DB_DEST_XCM);
   585		SET_FIELD(qedi_ep->db_data.params, ISCSI_DB_DATA_AGG_CMD,
   586			  DB_AGG_CMD_MAX);
   587		SET_FIELD(qedi_ep->db_data.params, ISCSI_DB_DATA_AGG_VAL_SEL,
   588			  DQ_XCM_ISCSI_SQ_PROD_CMD);
   589		SET_FIELD(qedi_ep->db_data.params, ISCSI_DB_DATA_BYPASS_EN, 1);
   590	
   591		/* register doorbell with doorbell recovery mechanism */
 > 592		rc = qedi_ops->common->db_recovery_add(qedi->cdev,
 > 593						qedi_ep.p_doorbell,
   594						&qedi_ep.db_data,
   595						DB_REC_WIDTH_32B, DB_REC_KERNEL);
   596		if (rc) {
   597			kfree(conn_info);
 > 598			return rval;
   599		}
   600	
   601		rval = qedi_ops->offload_conn(qedi->cdev, qedi_ep->handle, conn_info);
   602		if (rval)
   603			/* delete doorbell from doorbell recovery mechanism */
   604			rc = qedi_ops->common->db_recovery_del(qedi->cdev,
   605							       qedi_ep.p_doorbell,
   606							       &qedi_ep.db_data);
   607	
   608			QEDI_ERR(&qedi->dbg_ctx, "offload_conn returned %d, ep=%p\n",
   609				 rval, qedi_ep);
   610	
   611		kfree(conn_info);
   612		return rval;
   613	}
   614	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux