• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/scsi/lpfc/

Lines Matching refs:phba

54 lpfc_new_scsi_buf(struct lpfc_hba * phba)
66 psb->scsi_hba = phba;
74 psb->data = pci_pool_alloc(phba->lpfc_scsi_dma_buf_pool, GFP_KERNEL,
82 memset(psb->data, 0, phba->cfg_sg_dma_buf_size);
85 iotag = lpfc_sli_next_iotag(phba, &psb->cur_iocbq);
87 pci_pool_free(phba->lpfc_scsi_dma_buf_pool,
141 lpfc_get_scsi_buf(struct lpfc_hba * phba)
144 struct list_head *scsi_buf_list = &phba->lpfc_scsi_buf_list;
147 spin_lock_irqsave(&phba->scsi_buf_list_lock, iflag);
153 spin_unlock_irqrestore(&phba->scsi_buf_list_lock, iflag);
158 lpfc_release_scsi_buf(struct lpfc_hba * phba, struct lpfc_scsi_buf * psb)
162 spin_lock_irqsave(&phba->scsi_buf_list_lock, iflag);
164 list_add_tail(&psb->list, &phba->lpfc_scsi_buf_list);
165 spin_unlock_irqrestore(&phba->scsi_buf_list_lock, iflag);
169 lpfc_scsi_prep_dma_buf(struct lpfc_hba * phba, struct lpfc_scsi_buf * lpfc_cmd)
196 lpfc_cmd->seg_cnt = dma_map_sg(&phba->pcidev->dev, sgel,
201 if (lpfc_cmd->seg_cnt > phba->cfg_sg_seg_cnt) {
204 __FUNCTION__, phba->cfg_sg_seg_cnt,
206 dma_unmap_sg(&phba->pcidev->dev, sgel,
232 physaddr = dma_map_single(&phba->pcidev->dev,
238 lpfc_printf_log(phba, KERN_ERR, LOG_FCP,
241 phba->brd_no, dma_error);
274 lpfc_scsi_unprep_dma_buf(struct lpfc_hba * phba, struct lpfc_scsi_buf * psb)
283 dma_unmap_sg(&phba->pcidev->dev, psb->pCmd->request_buffer,
287 dma_unmap_single(&phba->pcidev->dev, psb->nonsg_phys,
300 struct lpfc_hba *phba = lpfc_cmd->scsi_hba;
333 lpfc_printf_log(phba, KERN_WARNING, logit,
336 phba->brd_no, cmnd->cmnd[0], scsi_status,
356 lpfc_printf_log(phba, KERN_INFO, LOG_FCP,
358 "residual %d Data: x%x x%x x%x\n", phba->brd_no,
370 lpfc_printf_log(phba, KERN_WARNING,
373 "Data: x%x x%x x%x x%x\n", phba->brd_no,
389 lpfc_printf_log(phba, KERN_INFO, LOG_FCP,
392 "Data: x%x x%x x%x\n", phba->brd_no,
399 lpfc_printf_log(phba, KERN_WARNING, LOG_FCP,
402 phba->brd_no, cmnd->cmnd[0],
412 lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_FCP_ERROR,
414 "x%x x%x x%x x%x\n", phba->brd_no,
427 lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
449 lpfc_printf_log(phba, KERN_WARNING, LOG_FCP,
452 phba->brd_no, cmd->cmnd[0], cmd->device->id,
481 lpfc_printf_log(phba, KERN_INFO, LOG_FCP,
484 phba->brd_no, cmd->device->id,
491 lpfc_scsi_unprep_dma_buf(phba, lpfc_cmd);
494 if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) {
495 lpfc_release_scsi_buf(phba, lpfc_cmd);
504 (phba->cfg_lun_queue_depth > sdev->queue_depth)) {
506 if (phba->cfg_lun_queue_depth > tmp_sdev->queue_depth) {
546 lpfc_printf_log(phba, KERN_WARNING, LOG_FCP,
548 " adjusted to %d.\n", phba->brd_no, depth);
552 lpfc_release_scsi_buf(phba, lpfc_cmd);
556 lpfc_scsi_prep_cmnd(struct lpfc_hba * phba, struct lpfc_scsi_buf * lpfc_cmd,
601 phba->fc4OutputRequests++;
608 phba->fc4InputRequests++;
616 phba->fc4OutputRequests++;
623 phba->fc4InputRequests++;
630 phba->fc4ControlRequests++;
648 lpfc_scsi_prep_task_mgmt_cmd(struct lpfc_hba *phba,
664 psli = &phba->sli;
695 lpfc_tskmgmt_def_cmpl(struct lpfc_hba *phba,
702 lpfc_release_scsi_buf(phba, lpfc_cmd);
707 lpfc_scsi_tgt_reset(struct lpfc_scsi_buf * lpfc_cmd, struct lpfc_hba * phba,
719 ret = lpfc_scsi_prep_task_mgmt_cmd(phba, lpfc_cmd, lun,
724 lpfc_cmd->scsi_hba = phba;
726 iocbqrsp = lpfc_sli_get_iocbq(phba);
732 lpfc_printf_log(phba, KERN_INFO, LOG_FCP,
735 phba->brd_no, tgt_id, rdata->pnode->nlp_rpi,
738 ret = lpfc_sli_issue_iocb_wait(phba,
739 &phba->sli.ring[phba->sli.fcp_ring],
754 lpfc_sli_release_iocbq(phba, iocbqrsp);
761 struct lpfc_hba *phba = (struct lpfc_hba *) host->hostdata;
766 if (phba && phba->pcidev){
767 strncpy(lpfcinfobuf, phba->ModelDesc, 256);
772 phba->pcidev->bus->number,
773 phba->pcidev->devfn,
774 phba->pcidev->irq);
776 if (phba->Port[0]) {
780 phba->Port);
786 static __inline__ void lpfc_poll_rearm_timer(struct lpfc_hba * phba)
789 (jiffies + msecs_to_jiffies(phba->cfg_poll_tmo));
791 if (phba->sli.ring[LPFC_FCP_RING].txcmplq_cnt)
792 mod_timer(&phba->fcp_poll_timer,
796 void lpfc_poll_start_timer(struct lpfc_hba * phba)
798 lpfc_poll_rearm_timer(phba);
803 struct lpfc_hba *phba = (struct lpfc_hba *)ptr;
806 spin_lock_irqsave(phba->host->host_lock, iflag);
808 if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) {
809 lpfc_sli_poll_fcp_ring (phba);
810 if (phba->cfg_poll & DISABLE_FCP_RING_INT)
811 lpfc_poll_rearm_timer(phba);
814 spin_unlock_irqrestore(phba->host->host_lock, iflag);
820 struct lpfc_hba *phba =
822 struct lpfc_sli *psli = &phba->sli;
843 lpfc_cmd = lpfc_get_scsi_buf (phba);
845 lpfc_printf_log(phba, KERN_INFO, LOG_FCP,
847 "IO busied\n", phba->brd_no);
861 err = lpfc_scsi_prep_dma_buf(phba, lpfc_cmd);
865 lpfc_scsi_prep_cmnd(phba, lpfc_cmd, ndlp);
867 err = lpfc_sli_issue_iocb(phba, &phba->sli.ring[psli->fcp_ring],
872 if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) {
873 lpfc_sli_poll_fcp_ring(phba);
874 if (phba->cfg_poll & DISABLE_FCP_RING_INT)
875 lpfc_poll_rearm_timer(phba);
881 lpfc_scsi_unprep_dma_buf(phba, lpfc_cmd);
882 lpfc_release_scsi_buf(phba, lpfc_cmd);
911 struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata;
912 struct lpfc_sli_ring *pring = &phba->sli.ring[phba->sli.fcp_ring];
939 abtsiocb = lpfc_sli_get_iocbq(phba);
959 if (phba->hba_state >= LPFC_LINK_UP)
965 if (lpfc_sli_issue_iocb(phba, pring, abtsiocb, 0) == IOCB_ERROR) {
966 lpfc_sli_release_iocbq(phba, abtsiocb);
971 if (phba->cfg_poll & DISABLE_FCP_RING_INT)
972 lpfc_sli_poll_fcp_ring (phba);
977 if (phba->cfg_poll & DISABLE_FCP_RING_INT)
978 lpfc_sli_poll_fcp_ring (phba);
980 spin_unlock_irq(phba->host->host_lock);
982 spin_lock_irq(phba->host->host_lock);
984 > (2 * phba->cfg_devloss_tmo)/LPFC_ABORT_WAIT)
990 lpfc_printf_log(phba, KERN_ERR, LOG_FCP,
994 phba->brd_no, ret, cmnd->device->id,
999 lpfc_printf_log(phba, KERN_WARNING, LOG_FCP,
1002 phba->brd_no, ret, cmnd->device->id,
1014 struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata;
1036 spin_unlock_irq(phba->host->host_lock);
1038 spin_lock_irq(phba->host->host_lock);
1042 (loopcnt > ((phba->cfg_devloss_tmo * 2) + 1))) {
1043 lpfc_printf_log(phba, KERN_ERR, LOG_FCP,
1046 phba->brd_no, loopcnt, rdata);
1057 lpfc_cmd = lpfc_get_scsi_buf (phba);
1062 lpfc_cmd->scsi_hba = phba;
1065 ret = lpfc_scsi_prep_task_mgmt_cmd(phba, lpfc_cmd, cmnd->device->lun,
1073 iocbqrsp = lpfc_sli_get_iocbq(phba);
1077 lpfc_printf_log(phba, KERN_INFO, LOG_FCP,
1079 "nlp_flag x%x\n", phba->brd_no, cmnd->device->id,
1082 iocb_status = lpfc_sli_issue_iocb_wait(phba,
1083 &phba->sli.ring[phba->sli.fcp_ring],
1097 lpfc_sli_release_iocbq(phba, iocbqrsp);
1104 cnt = lpfc_sli_sum_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring],
1108 lpfc_sli_abort_iocb(phba,
1109 &phba->sli.ring[phba->sli.fcp_ring],
1114 spin_unlock_irq(phba->host->host_lock);
1116 spin_lock_irq(phba->host->host_lock);
1119 > (2 * phba->cfg_devloss_tmo)/LPFC_RESET_WAIT)
1122 cnt = lpfc_sli_sum_iocb(phba,
1123 &phba->sli.ring[phba->sli.fcp_ring],
1129 lpfc_printf_log(phba, KERN_ERR, LOG_FCP,
1131 phba->brd_no, cnt);
1137 lpfc_release_scsi_buf(phba, lpfc_cmd);
1139 lpfc_printf_log(phba, KERN_ERR, LOG_FCP,
1142 phba->brd_no, cmnd->device->id, cmnd->device->lun,
1154 struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata;
1164 lpfc_cmd = lpfc_get_scsi_buf(phba);
1170 lpfc_cmd->scsi_hba = phba;
1180 list_for_each_entry(ndlp, &phba->fc_nodes, nlp_listp) {
1191 ret = lpfc_scsi_tgt_reset(lpfc_cmd, phba, i, cmnd->device->lun,
1194 lpfc_printf_log(phba, KERN_ERR, LOG_FCP,
1196 phba->brd_no, i);
1203 lpfc_release_scsi_buf(phba, lpfc_cmd);
1215 cnt = lpfc_sli_sum_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring],
1218 lpfc_sli_abort_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring],
1222 spin_unlock_irq(phba->host->host_lock);
1224 spin_lock_irq(phba->host->host_lock);
1227 > (2 * phba->cfg_devloss_tmo)/LPFC_RESET_WAIT)
1230 cnt = lpfc_sli_sum_iocb(phba,
1231 &phba->sli.ring[phba->sli.fcp_ring],
1236 lpfc_printf_log(phba, KERN_ERR, LOG_FCP,
1238 phba->brd_no, cnt, i);
1242 lpfc_printf_log(phba,
1246 phba->brd_no, ret);
1255 struct lpfc_hba *phba = (struct lpfc_hba *)sdev->host->hostdata;
1274 total = phba->total_scsi_bufs;
1275 num_to_alloc = phba->cfg_lun_queue_depth + 2;
1276 if (total >= phba->cfg_hba_queue_depth) {
1277 lpfc_printf_log(phba, KERN_WARNING, LOG_FCP,
1279 "command buffers\n", phba->brd_no, total);
1281 } else if (total + num_to_alloc > phba->cfg_hba_queue_depth) {
1282 lpfc_printf_log(phba, KERN_WARNING, LOG_FCP,
1285 "allocation request to %d.\n", phba->brd_no,
1286 num_to_alloc, phba->cfg_hba_queue_depth,
1287 (phba->cfg_hba_queue_depth - total));
1288 num_to_alloc = phba->cfg_hba_queue_depth - total;
1292 scsi_buf = lpfc_new_scsi_buf(phba);
1294 lpfc_printf_log(phba, KERN_ERR, LOG_FCP,
1296 "buffer\n", phba->brd_no);
1300 spin_lock_irqsave(&phba->scsi_buf_list_lock, flags);
1301 phba->total_scsi_bufs++;
1302 list_add_tail(&scsi_buf->list, &phba->lpfc_scsi_buf_list);
1303 spin_unlock_irqrestore(&phba->scsi_buf_list_lock, flags);
1311 struct lpfc_hba *phba = (struct lpfc_hba *) sdev->host->hostdata;
1315 scsi_activate_tcq(sdev, phba->cfg_lun_queue_depth);
1317 scsi_deactivate_tcq(sdev, phba->cfg_lun_queue_depth);
1325 rport->dev_loss_tmo = phba->cfg_devloss_tmo;
1327 if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) {
1328 lpfc_sli_poll_fcp_ring(phba);
1329 if (phba->cfg_poll & DISABLE_FCP_RING_INT)
1330 lpfc_poll_rearm_timer(phba);