[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202209201406.fHVcccRp-lkp@intel.com>
Date: Tue, 20 Sep 2022 15:09:02 +0800
From: kernel test robot <lkp@...el.com>
To: Yihao Han <hanyihao@...o.com>, Nilesh Javali <njavali@...vell.com>,
GR-QLogic-Storage-Upstream@...vell.com,
"James E.J. Bottomley" <jejb@...ux.ibm.com>,
"Martin K. Petersen" <martin.petersen@...cle.com>,
linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: kbuild-all@...ts.01.org, Yihao Han <hanyihao@...o.com>
Subject: Re: [PATCH] scsi: qla2xxx: fix excluded_middle.cocci warnings
Hi Yihao,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on jejb-scsi/for-next]
[also build test ERROR on mkp-scsi/for-next linus/master v6.0-rc6 next-20220919]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Yihao-Han/scsi-qla2xxx-fix-excluded_middle-cocci-warnings/20220920-104643
base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: ia64-allyesconfig (https://download.01.org/0day-ci/archive/20220920/202209201406.fHVcccRp-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/81672bb39d1900d22e851a7cfb0b9a0aa35df8af
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Yihao-Han/scsi-qla2xxx-fix-excluded_middle-cocci-warnings/20220920-104643
git checkout 81672bb39d1900d22e851a7cfb0b9a0aa35df8af
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/scsi/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
drivers/scsi/qla2xxx/qla_target.c: In function 'qlt_free_session_done':
>> drivers/scsi/qla2xxx/qla_target.c:1031:78: error: expected ')' before '{' token
1031 | (!own || (own->iocb.u.isp24.status_subcode == ELS_PLOGI)) {
| ^~
| )
drivers/scsi/qla2xxx/qla_target.c:1030:20: note: to match this '('
1030 | if (ha->flags.edif_enabled &&
| ^
>> drivers/scsi/qla2xxx/qla_target.c:1047:9: error: expected expression before '}' token
1047 | }
| ^
vim +1031 drivers/scsi/qla2xxx/qla_target.c
961
962 void qlt_free_session_done(struct work_struct *work)
963 {
964 struct fc_port *sess = container_of(work, struct fc_port,
965 free_work);
966 struct qla_tgt *tgt = sess->tgt;
967 struct scsi_qla_host *vha = sess->vha;
968 struct qla_hw_data *ha = vha->hw;
969 unsigned long flags;
970 bool logout_started = false;
971 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev);
972 struct qlt_plogi_ack_t *own =
973 sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN];
974
975 ql_dbg(ql_dbg_disc, vha, 0xf084,
976 "%s: se_sess %p / sess %p from port %8phC loop_id %#04x"
977 " s_id %02x:%02x:%02x logout %d keep %d els_logo %d\n",
978 __func__, sess->se_sess, sess, sess->port_name, sess->loop_id,
979 sess->d_id.b.domain, sess->d_id.b.area, sess->d_id.b.al_pa,
980 sess->logout_on_delete, sess->keep_nport_handle,
981 sess->send_els_logo);
982
983 if (!IS_SW_RESV_ADDR(sess->d_id)) {
984 qla2x00_mark_device_lost(vha, sess, 0);
985
986 if (sess->send_els_logo) {
987 qlt_port_logo_t logo;
988
989 logo.id = sess->d_id;
990 logo.cmd_count = 0;
991 INIT_LIST_HEAD(&logo.list);
992 if (!own)
993 qlt_send_first_logo(vha, &logo);
994 sess->send_els_logo = 0;
995 }
996
997 if (sess->logout_on_delete && sess->loop_id != FC_NO_LOOP_ID) {
998 int rc;
999
1000 if (!own ||
1001 (own->iocb.u.isp24.status_subcode == ELS_PLOGI)) {
1002 sess->logout_completed = 0;
1003 rc = qla2x00_post_async_logout_work(vha, sess,
1004 NULL);
1005 if (rc != QLA_SUCCESS)
1006 ql_log(ql_log_warn, vha, 0xf085,
1007 "Schedule logo failed sess %p rc %d\n",
1008 sess, rc);
1009 else
1010 logout_started = true;
1011 } else if (own && (own->iocb.u.isp24.status_subcode ==
1012 ELS_PRLI) && ha->flags.rida_fmt2) {
1013 rc = qla2x00_post_async_prlo_work(vha, sess,
1014 NULL);
1015 if (rc != QLA_SUCCESS)
1016 ql_log(ql_log_warn, vha, 0xf085,
1017 "Schedule PRLO failed sess %p rc %d\n",
1018 sess, rc);
1019 else
1020 logout_started = true;
1021 }
1022 } /* if sess->logout_on_delete */
1023
1024 if (sess->nvme_flag & NVME_FLAG_REGISTERED &&
1025 !(sess->nvme_flag & NVME_FLAG_DELETING)) {
1026 sess->nvme_flag |= NVME_FLAG_DELETING;
1027 qla_nvme_unregister_remote_port(sess);
1028 }
1029
1030 if (ha->flags.edif_enabled &&
> 1031 (!own || (own->iocb.u.isp24.status_subcode == ELS_PLOGI)) {
1032 sess->edif.authok = 0;
1033 if (!ha->flags.host_shutting_down) {
1034 ql_dbg(ql_dbg_edif, vha, 0x911e,
1035 "%s wwpn %8phC calling qla2x00_release_all_sadb\n",
1036 __func__, sess->port_name);
1037 qla2x00_release_all_sadb(vha, sess);
1038 } else {
1039 ql_dbg(ql_dbg_edif, vha, 0x911e,
1040 "%s bypassing release_all_sadb\n",
1041 __func__);
1042 }
1043
1044 qla_edif_clear_appdata(vha, sess);
1045 qla_edif_sess_down(vha, sess);
1046 }
> 1047 }
1048
1049 /*
1050 * Release the target session for FC Nexus from fabric module code.
1051 */
1052 if (sess->se_sess != NULL)
1053 ha->tgt.tgt_ops->free_session(sess);
1054
1055 if (logout_started) {
1056 bool traced = false;
1057 u16 cnt = 0;
1058
1059 while (!READ_ONCE(sess->logout_completed)) {
1060 if (!traced) {
1061 ql_dbg(ql_dbg_disc, vha, 0xf086,
1062 "%s: waiting for sess %p logout\n",
1063 __func__, sess);
1064 traced = true;
1065 }
1066 msleep(100);
1067 cnt++;
1068 /*
1069 * Driver timeout is set to 22 Sec, update count value to loop
1070 * long enough for log-out to complete before advancing. Otherwise,
1071 * straddling logout can interfere with re-login attempt.
1072 */
1073 if (cnt > 230)
1074 break;
1075 }
1076
1077 ql_dbg(ql_dbg_disc, vha, 0xf087,
1078 "%s: sess %p logout completed\n", __func__, sess);
1079 }
1080
1081 if (sess->logo_ack_needed) {
1082 sess->logo_ack_needed = 0;
1083 qla24xx_async_notify_ack(vha, sess,
1084 (struct imm_ntfy_from_isp *)sess->iocb, SRB_NACK_LOGO);
1085 }
1086
1087 spin_lock_irqsave(&vha->work_lock, flags);
1088 sess->flags &= ~FCF_ASYNC_SENT;
1089 spin_unlock_irqrestore(&vha->work_lock, flags);
1090
1091 spin_lock_irqsave(&ha->tgt.sess_lock, flags);
1092 if (sess->se_sess) {
1093 sess->se_sess = NULL;
1094 if (tgt && !IS_SW_RESV_ADDR(sess->d_id))
1095 tgt->sess_count--;
1096 }
1097
1098 qla2x00_set_fcport_disc_state(sess, DSC_DELETED);
1099 sess->fw_login_state = DSC_LS_PORT_UNAVAIL;
1100 sess->deleted = QLA_SESS_DELETED;
1101
1102 if (sess->login_succ && !IS_SW_RESV_ADDR(sess->d_id)) {
1103 vha->fcport_count--;
1104 sess->login_succ = 0;
1105 }
1106
1107 qla2x00_clear_loop_id(sess);
1108
1109 if (sess->conflict) {
1110 sess->conflict->login_pause = 0;
1111 sess->conflict = NULL;
1112 if (!test_bit(UNLOADING, &vha->dpc_flags))
1113 set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
1114 }
1115
1116 {
1117 struct qlt_plogi_ack_t *con =
1118 sess->plogi_link[QLT_PLOGI_LINK_CONFLICT];
1119 struct imm_ntfy_from_isp *iocb;
1120
1121 own = sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN];
1122
1123 if (con) {
1124 iocb = &con->iocb;
1125 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf099,
1126 "se_sess %p / sess %p port %8phC is gone,"
1127 " %s (ref=%d), releasing PLOGI for %8phC (ref=%d)\n",
1128 sess->se_sess, sess, sess->port_name,
1129 own ? "releasing own PLOGI" : "no own PLOGI pending",
1130 own ? own->ref_count : -1,
1131 iocb->u.isp24.port_name, con->ref_count);
1132 qlt_plogi_ack_unref(vha, con);
1133 sess->plogi_link[QLT_PLOGI_LINK_CONFLICT] = NULL;
1134 } else {
1135 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf09a,
1136 "se_sess %p / sess %p port %8phC is gone, %s (ref=%d)\n",
1137 sess->se_sess, sess, sess->port_name,
1138 own ? "releasing own PLOGI" :
1139 "no own PLOGI pending",
1140 own ? own->ref_count : -1);
1141 }
1142
1143 if (own) {
1144 sess->fw_login_state = DSC_LS_PLOGI_PEND;
1145 qlt_plogi_ack_unref(vha, own);
1146 sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN] = NULL;
1147 }
1148 }
1149
1150 sess->explicit_logout = 0;
1151 spin_unlock_irqrestore(&ha->tgt.sess_lock, flags);
1152 sess->free_pending = 0;
1153
1154 qla2x00_dfs_remove_rport(vha, sess);
1155
1156 ql_dbg(ql_dbg_disc, vha, 0xf001,
1157 "Unregistration of sess %p %8phC finished fcp_cnt %d\n",
1158 sess, sess->port_name, vha->fcport_count);
1159
1160 if (tgt && (tgt->sess_count == 0))
1161 wake_up_all(&tgt->waitQ);
1162
1163 if (!test_bit(PFLG_DRIVER_REMOVING, &base_vha->pci_flags) &&
1164 !(vha->vp_idx && test_bit(VPORT_DELETE, &vha->dpc_flags)) &&
1165 (!tgt || !tgt->tgt_stop) && !LOOP_TRANSITION(vha)) {
1166 switch (vha->host->active_mode) {
1167 case MODE_INITIATOR:
1168 case MODE_DUAL:
1169 set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
1170 qla2xxx_wake_dpc(vha);
1171 break;
1172 case MODE_TARGET:
1173 default:
1174 /* no-op */
1175 break;
1176 }
1177 }
1178
1179 if (vha->fcport_count == 0)
1180 wake_up_all(&vha->fcport_waitQ);
1181 }
1182
--
0-DAY CI Kernel Test Service
https://01.org/lkp
Powered by blists - more mailing lists