* drivers/scsi/lpfc/lpfc_scsi.c:4064 lpfc_fcp_io_cmd_wqe_cmpl() error: we previously assumed 'phba' could be null (see line 4060)
@ 2021-01-17 3:35 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-01-17 3:35 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 6403 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: James Smart <james.smart@broadcom.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Dick Kennedy <dick.kennedy@broadcom.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 0da0a8a0a0e1845f495431c3d8d733d2bbf9e9e5
commit: 96e209be6ecb7b96dfb56f2737401adce33aef8e scsi: lpfc: Convert SCSI I/O completions to SLI-3 and SLI-4 handlers
date: 9 weeks ago
:::::: branch date: 7 hours ago
:::::: commit date: 9 weeks ago
config: x86_64-randconfig-m001-20210117 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/scsi/lpfc/lpfc_scsi.c:4064 lpfc_fcp_io_cmd_wqe_cmpl() error: we previously assumed 'phba' could be null (see line 4060)
Old smatch warnings:
drivers/scsi/lpfc/lpfc_scsi.c:4036 lpfc_fcp_io_cmd_wqe_cmpl() warn: variable dereferenced before check 'lpfc_cmd' (see line 4025)
vim +/phba +4064 drivers/scsi/lpfc/lpfc_scsi.c
96e209be6ecb7b96 James Smart 2020-11-15 4007
96e209be6ecb7b96 James Smart 2020-11-15 4008 /**
96e209be6ecb7b96 James Smart 2020-11-15 4009 * lpfc_fcp_io_cmd_wqe_cmpl - Complete a FCP IO
96e209be6ecb7b96 James Smart 2020-11-15 4010 * @phba: The hba for which this call is being executed.
96e209be6ecb7b96 James Smart 2020-11-15 4011 * @pwqeIn: The command WQE for the scsi cmnd.
96e209be6ecb7b96 James Smart 2020-11-15 4012 * @pwqeOut: The response WQE for the scsi cmnd.
96e209be6ecb7b96 James Smart 2020-11-15 4013 *
96e209be6ecb7b96 James Smart 2020-11-15 4014 * This routine assigns scsi command result by looking into response WQE
96e209be6ecb7b96 James Smart 2020-11-15 4015 * status field appropriately. This routine handles QUEUE FULL condition as
96e209be6ecb7b96 James Smart 2020-11-15 4016 * well by ramping down device queue depth.
96e209be6ecb7b96 James Smart 2020-11-15 4017 **/
96e209be6ecb7b96 James Smart 2020-11-15 4018 static void
96e209be6ecb7b96 James Smart 2020-11-15 4019 lpfc_fcp_io_cmd_wqe_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pwqeIn,
96e209be6ecb7b96 James Smart 2020-11-15 4020 struct lpfc_wcqe_complete *wcqe)
96e209be6ecb7b96 James Smart 2020-11-15 4021 {
96e209be6ecb7b96 James Smart 2020-11-15 4022 struct lpfc_io_buf *lpfc_cmd =
96e209be6ecb7b96 James Smart 2020-11-15 4023 (struct lpfc_io_buf *)pwqeIn->context1;
96e209be6ecb7b96 James Smart 2020-11-15 4024 struct lpfc_vport *vport = pwqeIn->vport;
96e209be6ecb7b96 James Smart 2020-11-15 4025 struct lpfc_rport_data *rdata = lpfc_cmd->rdata;
96e209be6ecb7b96 James Smart 2020-11-15 4026 struct lpfc_nodelist *ndlp = rdata->pnode;
96e209be6ecb7b96 James Smart 2020-11-15 4027 struct scsi_cmnd *cmd;
96e209be6ecb7b96 James Smart 2020-11-15 4028 unsigned long flags;
96e209be6ecb7b96 James Smart 2020-11-15 4029 struct lpfc_fast_path_event *fast_path_evt;
96e209be6ecb7b96 James Smart 2020-11-15 4030 struct Scsi_Host *shost;
96e209be6ecb7b96 James Smart 2020-11-15 4031 u32 logit = LOG_FCP;
96e209be6ecb7b96 James Smart 2020-11-15 4032 u32 status, idx;
96e209be6ecb7b96 James Smart 2020-11-15 4033 unsigned long iflags = 0;
96e209be6ecb7b96 James Smart 2020-11-15 4034
96e209be6ecb7b96 James Smart 2020-11-15 4035 /* Sanity check on return of outstanding command */
96e209be6ecb7b96 James Smart 2020-11-15 4036 if (!lpfc_cmd) {
96e209be6ecb7b96 James Smart 2020-11-15 4037 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
96e209be6ecb7b96 James Smart 2020-11-15 4038 "9032 Null lpfc_cmd pointer. No "
96e209be6ecb7b96 James Smart 2020-11-15 4039 "release, skip completion\n");
96e209be6ecb7b96 James Smart 2020-11-15 4040 return;
96e209be6ecb7b96 James Smart 2020-11-15 4041 }
96e209be6ecb7b96 James Smart 2020-11-15 4042
96e209be6ecb7b96 James Smart 2020-11-15 4043 if (bf_get(lpfc_wcqe_c_xb, wcqe)) {
96e209be6ecb7b96 James Smart 2020-11-15 4044 /* TOREMOVE - currently this flag is checked during
96e209be6ecb7b96 James Smart 2020-11-15 4045 * the release of lpfc_iocbq. Remove once we move
96e209be6ecb7b96 James Smart 2020-11-15 4046 * to lpfc_wqe_job construct.
96e209be6ecb7b96 James Smart 2020-11-15 4047 *
96e209be6ecb7b96 James Smart 2020-11-15 4048 * This needs to be done outside buf_lock
96e209be6ecb7b96 James Smart 2020-11-15 4049 */
96e209be6ecb7b96 James Smart 2020-11-15 4050 spin_lock_irqsave(&phba->hbalock, iflags);
96e209be6ecb7b96 James Smart 2020-11-15 4051 lpfc_cmd->cur_iocbq.iocb_flag |= LPFC_EXCHANGE_BUSY;
96e209be6ecb7b96 James Smart 2020-11-15 4052 spin_unlock_irqrestore(&phba->hbalock, iflags);
96e209be6ecb7b96 James Smart 2020-11-15 4053 }
96e209be6ecb7b96 James Smart 2020-11-15 4054
96e209be6ecb7b96 James Smart 2020-11-15 4055 /* Guard against abort handler being called at same time */
96e209be6ecb7b96 James Smart 2020-11-15 4056 spin_lock(&lpfc_cmd->buf_lock);
96e209be6ecb7b96 James Smart 2020-11-15 4057
96e209be6ecb7b96 James Smart 2020-11-15 4058 /* Sanity check on return of outstanding command */
96e209be6ecb7b96 James Smart 2020-11-15 4059 cmd = lpfc_cmd->pCmd;
96e209be6ecb7b96 James Smart 2020-11-15 @4060 if (!cmd || !phba) {
96e209be6ecb7b96 James Smart 2020-11-15 4061 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
96e209be6ecb7b96 James Smart 2020-11-15 4062 "9042 I/O completion: Not an active IO\n");
96e209be6ecb7b96 James Smart 2020-11-15 4063 spin_unlock(&lpfc_cmd->buf_lock);
96e209be6ecb7b96 James Smart 2020-11-15 @4064 lpfc_release_scsi_buf(phba, lpfc_cmd);
96e209be6ecb7b96 James Smart 2020-11-15 4065 return;
96e209be6ecb7b96 James Smart 2020-11-15 4066 }
96e209be6ecb7b96 James Smart 2020-11-15 4067 idx = lpfc_cmd->cur_iocbq.hba_wqidx;
96e209be6ecb7b96 James Smart 2020-11-15 4068 if (phba->sli4_hba.hdwq)
96e209be6ecb7b96 James Smart 2020-11-15 4069 phba->sli4_hba.hdwq[idx].scsi_cstat.io_cmpls++;
96e209be6ecb7b96 James Smart 2020-11-15 4070
---
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: 32987 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-01-17 3:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-17 3:35 drivers/scsi/lpfc/lpfc_scsi.c:4064 lpfc_fcp_io_cmd_wqe_cmpl() error: we previously assumed 'phba' could be null (see line 4060) 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.