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