• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/lpfc/

Lines Matching defs:lpfc_cmd

126  * @lpfc_cmd: lpfc scsi command object pointer.
133 struct lpfc_scsi_buf *lpfc_cmd)
135 struct sli4_sge *sgl = (struct sli4_sge *)lpfc_cmd->fcp_bpl;
147 * @lpfc_cmd: lpfc scsi command object pointer.
153 lpfc_update_stats(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
155 struct lpfc_rport_data *rdata = lpfc_cmd->rdata;
157 struct scsi_cmnd *cmd = lpfc_cmd->pCmd;
167 latency = jiffies_to_msecs((long)jiffies - (long)lpfc_cmd->start_time);
927 struct lpfc_scsi_buf * lpfc_cmd = NULL;
932 list_remove_head(scsi_buf_list, lpfc_cmd, struct lpfc_scsi_buf, list);
933 if (lpfc_cmd) {
934 lpfc_cmd->seg_cnt = 0;
935 lpfc_cmd->nonsg_phys = 0;
936 lpfc_cmd->prot_seg_cnt = 0;
939 return lpfc_cmd;
1011 * @lpfc_cmd: The scsi buffer which is going to be mapped.
1014 * field of @lpfc_cmd for device with SLI-3 interface spec. This routine scans
1023 lpfc_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
1025 struct scsi_cmnd *scsi_cmnd = lpfc_cmd->pCmd;
1027 struct fcp_cmnd *fcp_cmnd = lpfc_cmd->fcp_cmnd;
1028 struct ulp_bde64 *bpl = lpfc_cmd->fcp_bpl;
1029 struct lpfc_iocbq *iocbq = &lpfc_cmd->cur_iocbq;
1030 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb;
1056 lpfc_cmd->seg_cnt = nseg;
1057 if (lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt) {
1062 lpfc_cmd->seg_cnt);
1115 physaddr = lpfc_cmd->dma_handle;
1622 struct lpfc_scsi_buf *lpfc_cmd)
1624 struct scsi_cmnd *scsi_cmnd = lpfc_cmd->pCmd;
1625 struct fcp_cmnd *fcp_cmnd = lpfc_cmd->fcp_cmnd;
1626 struct ulp_bde64 *bpl = lpfc_cmd->fcp_bpl;
1627 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb;
1652 lpfc_cmd->seg_cnt = datasegcnt;
1653 if (lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt) {
1659 lpfc_cmd->seg_cnt);
1688 lpfc_cmd->prot_seg_cnt = protsegcnt;
1689 if (lpfc_cmd->prot_seg_cnt
1696 lpfc_cmd->prot_seg_cnt);
1774 lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd,
1777 struct scsi_cmnd *cmd = lpfc_cmd->pCmd;
1895 * @lpfc_cmd: The scsi buffer which is going to be mapped.
1898 * field of @lpfc_cmd for device with SLI-4 interface spec.
1905 lpfc_scsi_prep_dma_buf_s4(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
1907 struct scsi_cmnd *scsi_cmnd = lpfc_cmd->pCmd;
1909 struct fcp_cmnd *fcp_cmnd = lpfc_cmd->fcp_cmnd;
1910 struct sli4_sge *sgl = (struct sli4_sge *)lpfc_cmd->fcp_bpl;
1911 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb;
1942 lpfc_cmd->seg_cnt = nseg;
1943 if (lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt) {
1948 lpfc_cmd->seg_cnt);
2004 * @lpfc_cmd: The scsi buffer which is going to be mapped.
2014 lpfc_scsi_prep_dma_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
2016 return phba->lpfc_scsi_prep_dma_buf(phba, lpfc_cmd);
2023 * @lpfc_cmd: Pointer to lpfc scsi command which reported the error.
2031 struct lpfc_scsi_buf *lpfc_cmd, struct lpfc_iocbq *rsp_iocb) {
2032 struct scsi_cmnd *cmnd = lpfc_cmd->pCmd;
2033 struct fcp_rsp *fcprsp = lpfc_cmd->fcp_rsp;
2038 struct lpfc_nodelist *pnode = lpfc_cmd->rdata->pnode;
2117 * field of @lpfc_cmd for device with SLI-3 interface spec.
2139 * @lpfc_cmd: Pointer to lpfc_scsi_buf data structure.
2147 lpfc_handle_fcp_err(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
2150 struct scsi_cmnd *cmnd = lpfc_cmd->pCmd;
2151 struct fcp_cmnd *fcpcmd = lpfc_cmd->fcp_cmnd;
2152 struct fcp_rsp *fcprsp = lpfc_cmd->fcp_rsp;
2164 * scsi packet associated with this lpfc_cmd. The driver
2293 lpfc_send_scsi_error_event(vport->phba, vport, lpfc_cmd, rsp_iocb);
2310 struct lpfc_scsi_buf *lpfc_cmd =
2313 struct lpfc_rport_data *rdata = lpfc_cmd->rdata;
2325 if (!(lpfc_cmd->pCmd))
2327 cmd = lpfc_cmd->pCmd;
2330 lpfc_cmd->result = pIocbOut->iocb.un.ulpWord[4];
2331 lpfc_cmd->status = pIocbOut->iocb.ulpStatus;
2333 lpfc_cmd->exch_busy = pIocbOut->iocb_flag & LPFC_EXCHANGE_BUSY;
2338 if (lpfc_cmd->status) {
2339 if (lpfc_cmd->status == IOSTAT_LOCAL_REJECT &&
2340 (lpfc_cmd->result & IOERR_DRVR_MASK))
2341 lpfc_cmd->status = IOSTAT_DRIVER_REJECT;
2342 else if (lpfc_cmd->status >= IOSTAT_CNT)
2343 lpfc_cmd->status = IOSTAT_DEFAULT;
2351 lpfc_cmd->status, lpfc_cmd->result,
2353 lpfc_cmd->cur_iocbq.iocb.ulpIoTag);
2355 switch (lpfc_cmd->status) {
2358 lpfc_handle_fcp_err(vport, lpfc_cmd, pIocbOut);
2369 (lpfc_cmd->status == IOSTAT_NPORT_BSY) ?
2389 if (lpfc_cmd->result == IOERR_INVALID_RPI ||
2390 lpfc_cmd->result == IOERR_NO_RESOURCES ||
2391 lpfc_cmd->result == IOERR_ABORT_REQUESTED ||
2392 lpfc_cmd->result == IOERR_SLER_CMD_RCV_FAILURE) {
2397 if ((lpfc_cmd->result == IOERR_RX_DMA_FAILED ||
2398 lpfc_cmd->result == IOERR_TX_DMA_FAILED) &&
2405 lpfc_parse_bg_err(phba, lpfc_cmd,
2430 if (cmd->result || lpfc_cmd->fcp_rsp->rspSnsLen) {
2441 lpfc_update_stats(phba, lpfc_cmd);
2444 time_after(jiffies, lpfc_cmd->start_time +
2476 lpfc_scsi_unprep_dma_buf(phba, lpfc_cmd);
2489 lpfc_cmd->pCmd = NULL;
2490 if (lpfc_cmd->waitq)
2491 wake_up(lpfc_cmd->waitq);
2493 lpfc_release_scsi_buf(phba, lpfc_cmd);
2528 lpfc_cmd->pCmd = NULL;
2529 if (lpfc_cmd->waitq)
2530 wake_up(lpfc_cmd->waitq);
2533 lpfc_release_scsi_buf(phba, lpfc_cmd);
2557 * @lpfc_cmd: The scsi command which needs to send.
2564 lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
2568 struct scsi_cmnd *scsi_cmnd = lpfc_cmd->pCmd;
2569 struct fcp_cmnd *fcp_cmnd = lpfc_cmd->fcp_cmnd;
2570 IOCB_t *iocb_cmd = &lpfc_cmd->cur_iocbq.iocb;
2571 struct lpfc_iocbq *piocbq = &(lpfc_cmd->cur_iocbq);
2578 lpfc_cmd->fcp_rsp->rspSnsLen = 0;
2580 lpfc_cmd->fcp_cmnd->fcpCntl2 = 0;
2582 int_to_scsilun(lpfc_cmd->pCmd->device->lun,
2583 &lpfc_cmd->fcp_cmnd->fcp_lun);
2645 piocbq->context1 = lpfc_cmd;
2647 piocbq->iocb.ulpTimeout = lpfc_cmd->timeout;
2654 * @lpfc_cmd: Pointer to lpfc_scsi_buf data structure.
2667 struct lpfc_scsi_buf *lpfc_cmd,
2674 struct lpfc_rport_data *rdata = lpfc_cmd->rdata;
2681 piocbq = &(lpfc_cmd->cur_iocbq);
2686 fcp_cmnd = lpfc_cmd->fcp_cmnd;
2702 if (lpfc_cmd->timeout > 0xff) {
2709 piocb->ulpTimeout = lpfc_cmd->timeout;
2712 lpfc_sli4_set_rsp_sgl_last(vport->phba, lpfc_cmd);
2765 * routine. This routine release scsi buffer associated with lpfc_cmd.
2772 struct lpfc_scsi_buf *lpfc_cmd =
2774 if (lpfc_cmd)
2775 lpfc_release_scsi_buf(phba, lpfc_cmd);
2894 struct lpfc_scsi_buf *lpfc_cmd;
2928 lpfc_cmd = lpfc_get_scsi_buf(phba);
2929 if (lpfc_cmd == NULL) {
2942 lpfc_cmd->pCmd = cmnd;
2943 lpfc_cmd->rdata = rdata;
2944 lpfc_cmd->timeout = 0;
2945 lpfc_cmd->start_time = jiffies;
2946 cmnd->host_scribble = (unsigned char *)lpfc_cmd;
2978 err = lpfc_bg_scsi_prep_dma_buf(phba, lpfc_cmd);
3010 err = lpfc_scsi_prep_dma_buf(phba, lpfc_cmd);
3016 lpfc_scsi_prep_cmnd(vport, lpfc_cmd, ndlp);
3020 &lpfc_cmd->cur_iocbq, SLI_IOCB_RET_IOCB);
3038 lpfc_scsi_unprep_dma_buf(phba, lpfc_cmd);
3039 lpfc_release_scsi_buf(phba, lpfc_cmd);
3066 struct lpfc_scsi_buf *lpfc_cmd;
3074 lpfc_cmd = (struct lpfc_scsi_buf *)cmnd->host_scribble;
3075 BUG_ON(!lpfc_cmd);
3084 iocb = &lpfc_cmd->cur_iocbq;
3085 if (lpfc_cmd->pCmd != cmnd)
3088 BUG_ON(iocb->context1 != lpfc_cmd);
3136 lpfc_cmd->waitq = &waitq;
3139 (lpfc_cmd->pCmd != cmnd),
3143 lpfc_cmd->waitq = NULL;
3146 if (lpfc_cmd->pCmd == cmnd) {
3208 struct lpfc_scsi_buf *lpfc_cmd;
3217 lpfc_cmd = lpfc_get_scsi_buf(phba);
3218 if (lpfc_cmd == NULL)
3220 lpfc_cmd->timeout = 60;
3221 lpfc_cmd->rdata = rdata;
3223 status = lpfc_scsi_prep_task_mgmt_cmd(vport, lpfc_cmd, lun_id,
3226 lpfc_release_scsi_buf(phba, lpfc_cmd);
3230 iocbq = &lpfc_cmd->cur_iocbq;
3233 lpfc_release_scsi_buf(phba, lpfc_cmd);
3244 iocbq, iocbqrsp, lpfc_cmd->timeout);
3251 lpfc_cmd->status = IOSTAT_DRIVER_REJECT;
3265 lpfc_release_scsi_buf(phba, lpfc_cmd);