* [bvanassche:scsi-remove-done-callback 60/83] drivers/scsi/qedf/qedf_io.c:955:3: error: implicit declaration of function 'sc_scsi_done'; did you mean 'scsi_done'?
@ 2021-04-26 15:16 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-04-26 15:16 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 6039 bytes --]
tree: https://github.com/bvanassche/linux scsi-remove-done-callback
head: 0fcbd84b06fef935eeac38e0677f03ddbc69cab0
commit: bbc20791831988fc5850843d89dc85cb3972e072 [60/83] qedf: Call scsi_done() directly
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.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/bvanassche/linux/commit/bbc20791831988fc5850843d89dc85cb3972e072
git remote add bvanassche https://github.com/bvanassche/linux
git fetch --no-tags bvanassche scsi-remove-done-callback
git checkout bbc20791831988fc5850843d89dc85cb3972e072
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/scsi/qedf/qedf_io.c: In function 'qedf_queuecommand':
>> drivers/scsi/qedf/qedf_io.c:955:3: error: implicit declaration of function 'sc_scsi_done'; did you mean 'scsi_done'? [-Werror=implicit-function-declaration]
955 | sc_scsi_done(sc_cmd);
| ^~~~~~~~~~~~
| scsi_done
cc1: some warnings being treated as errors
vim +955 drivers/scsi/qedf/qedf_io.c
934
935 int
936 qedf_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc_cmd)
937 {
938 struct fc_lport *lport = shost_priv(host);
939 struct qedf_ctx *qedf = lport_priv(lport);
940 struct fc_rport *rport = starget_to_rport(scsi_target(sc_cmd->device));
941 struct fc_rport_libfc_priv *rp = rport->dd_data;
942 struct qedf_rport *fcport;
943 struct qedf_ioreq *io_req;
944 int rc = 0;
945 int rval;
946 unsigned long flags = 0;
947 int num_sgs = 0;
948
949 num_sgs = scsi_sg_count(sc_cmd);
950 if (scsi_sg_count(sc_cmd) > QEDF_MAX_BDS_PER_CMD) {
951 QEDF_ERR(&qedf->dbg_ctx,
952 "Number of SG elements %d exceeds what hardware limitation of %d.\n",
953 num_sgs, QEDF_MAX_BDS_PER_CMD);
954 sc_cmd->result = DID_ERROR;
> 955 sc_scsi_done(sc_cmd);
956 return 0;
957 }
958
959 if (test_bit(QEDF_UNLOADING, &qedf->flags) ||
960 test_bit(QEDF_DBG_STOP_IO, &qedf->flags)) {
961 QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_IO,
962 "Returning DNC as unloading or stop io, flags 0x%lx.\n",
963 qedf->flags);
964 sc_cmd->result = DID_NO_CONNECT << 16;
965 sc_scsi_done(sc_cmd);
966 return 0;
967 }
968
969 if (!qedf->pdev->msix_enabled) {
970 QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_IO,
971 "Completing sc_cmd=%p DID_NO_CONNECT as MSI-X is not enabled.\n",
972 sc_cmd);
973 sc_cmd->result = DID_NO_CONNECT << 16;
974 sc_scsi_done(sc_cmd);
975 return 0;
976 }
977
978 rval = fc_remote_port_chkready(rport);
979 if (rval) {
980 QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_IO,
981 "fc_remote_port_chkready failed=0x%x for port_id=0x%06x.\n",
982 rval, rport->port_id);
983 sc_cmd->result = rval;
984 sc_scsi_done(sc_cmd);
985 return 0;
986 }
987
988 /* Retry command if we are doing a qed drain operation */
989 if (test_bit(QEDF_DRAIN_ACTIVE, &qedf->flags)) {
990 QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_IO, "Drain active.\n");
991 rc = SCSI_MLQUEUE_HOST_BUSY;
992 goto exit_qcmd;
993 }
994
995 if (lport->state != LPORT_ST_READY ||
996 atomic_read(&qedf->link_state) != QEDF_LINK_UP) {
997 QEDF_INFO(&qedf->dbg_ctx, QEDF_LOG_IO, "Link down.\n");
998 rc = SCSI_MLQUEUE_HOST_BUSY;
999 goto exit_qcmd;
1000 }
1001
1002 /* rport and tgt are allocated together, so tgt should be non-NULL */
1003 fcport = (struct qedf_rport *)&rp[1];
1004
1005 if (!test_bit(QEDF_RPORT_SESSION_READY, &fcport->flags) ||
1006 test_bit(QEDF_RPORT_UPLOADING_CONNECTION, &fcport->flags)) {
1007 /*
1008 * Session is not offloaded yet. Let SCSI-ml retry
1009 * the command.
1010 */
1011 rc = SCSI_MLQUEUE_TARGET_BUSY;
1012 goto exit_qcmd;
1013 }
1014
1015 atomic_inc(&fcport->ios_to_queue);
1016
1017 if (fcport->retry_delay_timestamp) {
1018 /* Take fcport->rport_lock for resetting the delay_timestamp */
1019 spin_lock_irqsave(&fcport->rport_lock, flags);
1020 if (time_after(jiffies, fcport->retry_delay_timestamp)) {
1021 fcport->retry_delay_timestamp = 0;
1022 } else {
1023 spin_unlock_irqrestore(&fcport->rport_lock, flags);
1024 /* If retry_delay timer is active, flow off the ML */
1025 rc = SCSI_MLQUEUE_TARGET_BUSY;
1026 atomic_dec(&fcport->ios_to_queue);
1027 goto exit_qcmd;
1028 }
1029 spin_unlock_irqrestore(&fcport->rport_lock, flags);
1030 }
1031
1032 io_req = qedf_alloc_cmd(fcport, QEDF_SCSI_CMD);
1033 if (!io_req) {
1034 rc = SCSI_MLQUEUE_HOST_BUSY;
1035 atomic_dec(&fcport->ios_to_queue);
1036 goto exit_qcmd;
1037 }
1038
1039 io_req->sc_cmd = sc_cmd;
1040
1041 /* Take fcport->rport_lock for posting to fcport send queue */
1042 spin_lock_irqsave(&fcport->rport_lock, flags);
1043 if (qedf_post_io_req(fcport, io_req)) {
1044 QEDF_WARN(&(qedf->dbg_ctx), "Unable to post io_req\n");
1045 /* Return SQE to pool */
1046 atomic_inc(&fcport->free_sqes);
1047 rc = SCSI_MLQUEUE_HOST_BUSY;
1048 }
1049 spin_unlock_irqrestore(&fcport->rport_lock, flags);
1050 atomic_dec(&fcport->ios_to_queue);
1051
1052 exit_qcmd:
1053 return rc;
1054 }
1055
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 67509 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-04-26 15:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-26 15:16 [bvanassche:scsi-remove-done-callback 60/83] drivers/scsi/qedf/qedf_io.c:955:3: error: implicit declaration of function 'sc_scsi_done'; did you mean 'scsi_done'? kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.