• 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/qla2xxx/

Lines Matching defs:bsg_job

95 qla24xx_proc_fcp_prio_cfg_cmd(struct fc_bsg_job *bsg_job)
97 struct Scsi_Host *host = bsg_job->shost;
104 bsg_job->reply->reply_payload_rcv_len = 0;
119 oper = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1];
133 bsg_job->reply->result = DID_OK;
136 bsg_job->reply->result = (DID_ERROR << 16);
148 bsg_job->reply->result = DID_OK;
151 bsg_job->reply->result = (DID_ERROR << 16);
158 len = bsg_job->reply_payload.payload_len;
161 bsg_job->reply->result = (DID_ERROR << 16);
165 bsg_job->reply->result = DID_OK;
166 bsg_job->reply->reply_payload_rcv_len =
168 bsg_job->reply_payload.sg_list,
169 bsg_job->reply_payload.sg_cnt, ha->fcp_prio_cfg,
175 len = bsg_job->request_payload.payload_len;
177 bsg_job->reply->result = (DID_ERROR << 16);
189 bsg_job->reply->result = (DID_ERROR << 16);
196 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
197 bsg_job->request_payload.sg_cnt, ha->fcp_prio_cfg,
204 bsg_job->reply->result = (DID_ERROR << 16);
218 bsg_job->reply->result = DID_OK;
225 bsg_job->job_done(bsg_job);
229 qla2x00_process_els(struct fc_bsg_job *bsg_job)
243 if (bsg_job->request->msgcode == FC_BSG_RPT_ELS) {
244 rport = bsg_job->rport;
251 host = bsg_job->shost;
267 if (bsg_job->request_payload.sg_cnt > 1 ||
268 bsg_job->reply_payload.sg_cnt > 1) {
272 bsg_job->request_payload.sg_cnt,
273 bsg_job->reply_payload.sg_cnt));
279 if (bsg_job->request->msgcode == FC_BSG_RPT_ELS) {
306 bsg_job->request->rqst_data.h_els.port_id[0];
308 bsg_job->request->rqst_data.h_els.port_id[1];
310 bsg_job->request->rqst_data.h_els.port_id[2];
324 dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
325 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
331 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
332 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
338 if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) ||
339 (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) {
344 bsg_job->request_payload.sg_cnt, req_sg_cnt,
345 bsg_job->reply_payload.sg_cnt, rsp_sg_cnt));
359 (bsg_job->request->msgcode == FC_BSG_RPT_ELS ?
362 (bsg_job->request->msgcode == FC_BSG_RPT_ELS ?
364 els->u.bsg_job = bsg_job;
369 bsg_job->request->rqst_data.h_els.command_code,
383 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
384 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
385 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
386 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
390 if (bsg_job->request->msgcode == FC_BSG_HST_ELS_NOLOGIN)
397 qla2x00_process_ct(struct fc_bsg_job *bsg_job)
400 struct Scsi_Host *host = bsg_job->shost;
411 dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
412 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
418 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
419 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
425 if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) ||
426 (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) {
430 bsg_job->request_payload.sg_cnt, req_sg_cnt,
431 bsg_job->reply_payload.sg_cnt, rsp_sg_cnt));
444 (bsg_job->request->rqst_data.h_ct.preamble_word1 & 0xFF000000)
474 fcport->d_id.b.al_pa = bsg_job->request->rqst_data.h_ct.port_id[0];
475 fcport->d_id.b.area = bsg_job->request->rqst_data.h_ct.port_id[1];
476 fcport->d_id.b.domain = bsg_job->request->rqst_data.h_ct.port_id[2];
489 ct->u.bsg_job = bsg_job;
494 (bsg_job->request->rqst_data.h_ct.preamble_word2 >> 16),
510 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
511 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
512 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
513 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
611 qla2x00_process_loopback(struct fc_bsg_job *bsg_job)
613 struct Scsi_Host *host = bsg_job->shost;
641 bsg_job->request_payload.sg_list, bsg_job->request_payload.sg_cnt,
648 bsg_job->reply_payload.sg_list, bsg_job->reply_payload.sg_cnt,
656 if ((elreq.req_sg_cnt != bsg_job->request_payload.sg_cnt) ||
657 (elreq.rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) {
662 bsg_job->request_payload.sg_cnt, elreq.req_sg_cnt,
663 bsg_job->reply_payload.sg_cnt, elreq.rsp_sg_cnt));
667 req_data_len = rsp_data_len = bsg_job->request_payload.payload_len;
687 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
688 bsg_job->request_payload.sg_cnt, req_data, req_data_len);
694 elreq.options = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1];
714 bsg_job->reply->reply_payload_rcv_len = 0;
715 bsg_job->reply->result = (DID_ERROR << 16);
726 bsg_job->reply->reply_payload_rcv_len =
728 bsg_job->reply->result =
739 bsg_job->reply->reply_payload_rcv_len =
741 bsg_job->reply->result =
779 bsg_job->reply->reply_payload_rcv_len = 0;
780 bsg_job->reply->result = (DID_ERROR << 16);
798 fw_sts_ptr = ((uint8_t *)bsg_job->req->sense) +
805 bsg_job->reply->reply_payload_rcv_len = 0;
806 bsg_job->reply->result = (DID_ERROR << 16);
811 bsg_job->reply_len = sizeof(struct fc_bsg_reply) +
813 bsg_job->reply->reply_payload_rcv_len =
814 bsg_job->reply_payload.payload_len;
815 fw_sts_ptr = ((uint8_t *)bsg_job->req->sense) +
820 bsg_job->reply->result = DID_OK;
821 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
822 bsg_job->reply_payload.sg_cnt, rsp_data,
825 bsg_job->job_done(bsg_job);
834 bsg_job->reply_payload.sg_list,
835 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
838 bsg_job->request_payload.sg_list,
839 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
844 qla84xx_reset(struct fc_bsg_job *bsg_job)
846 struct Scsi_Host *host = bsg_job->shost;
863 flag = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1];
870 rval = bsg_job->reply->reply_payload_rcv_len = 0;
871 bsg_job->reply->result = (DID_ERROR << 16);
876 bsg_job->reply->result = DID_OK;
879 bsg_job->job_done(bsg_job);
884 qla84xx_updatefw(struct fc_bsg_job *bsg_job)
886 struct Scsi_Host *host = bsg_job->shost;
910 sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
911 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
915 if (sg_cnt != bsg_job->request_payload.sg_cnt) {
919 bsg_job->request_payload.sg_cnt, sg_cnt));
924 data_len = bsg_job->request_payload.payload_len;
934 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
935 bsg_job->request_payload.sg_cnt, fw_buf, data_len);
945 flag = bsg_job->request->rqst_data.h_vendor.vendor_cmd[1];
971 rval = bsg_job->reply->reply_payload_rcv_len = 0;
972 bsg_job->reply->result = (DID_ERROR << 16);
978 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
979 bsg_job->reply->result = DID_OK;
982 bsg_job->job_done(bsg_job);
989 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
990 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
996 qla84xx_mgmt_cmd(struct fc_bsg_job *bsg_job)
998 struct Scsi_Host *host = bsg_job->shost;
1021 ql84_mgmt = (struct qla_bsg_a84_mgmt *)((char *)bsg_job->request +
1044 bsg_job->reply_payload.sg_list,
1045 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
1053 if (sg_cnt != bsg_job->reply_payload.sg_cnt) {
1057 bsg_job->reply_payload.sg_cnt, sg_cnt));
1062 data_len = bsg_job->reply_payload.payload_len;
1093 bsg_job->request_payload.sg_list,
1094 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
1103 if (sg_cnt != bsg_job->request_payload.sg_cnt) {
1107 bsg_job->request_payload.sg_cnt, sg_cnt));
1112 data_len = bsg_job->request_payload.payload_len;
1123 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1124 bsg_job->request_payload.sg_cnt, mgmt_b, data_len);
1162 rval = bsg_job->reply->reply_payload_rcv_len = 0;
1163 bsg_job->reply->result = (DID_ERROR << 16);
1169 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1170 bsg_job->reply->result = DID_OK;
1174 bsg_job->reply->reply_payload_rcv_len =
1175 bsg_job->reply_payload.payload_len;
1177 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
1178 bsg_job->reply_payload.sg_cnt, mgmt_b,
1183 bsg_job->job_done(bsg_job);
1190 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
1191 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
1193 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
1194 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
1203 qla24xx_iidma(struct fc_bsg_job *bsg_job)
1205 struct Scsi_Host *host = bsg_job->shost;
1214 bsg_job->reply->reply_payload_rcv_len = 0;
1227 port_param = (struct qla_port_param *)((char *)bsg_job->request +
1289 bsg_job->reply->result = (DID_ERROR << 16);
1293 bsg_job->reply_len = sizeof(struct fc_bsg_reply) +
1296 rsp_ptr = ((uint8_t *)bsg_job->reply) +
1303 bsg_job->reply->result = DID_OK;
1306 bsg_job->job_done(bsg_job);
1311 qla2x00_process_vendor_specific(struct fc_bsg_job *bsg_job)
1313 switch (bsg_job->request->rqst_data.h_vendor.vendor_cmd[0]) {
1315 return qla2x00_process_loopback(bsg_job);
1318 return qla84xx_reset(bsg_job);
1321 return qla84xx_updatefw(bsg_job);
1324 return qla84xx_mgmt_cmd(bsg_job);
1327 return qla24xx_iidma(bsg_job);
1330 return qla24xx_proc_fcp_prio_cfg_cmd(bsg_job);
1333 bsg_job->reply->result = (DID_ERROR << 16);
1334 bsg_job->job_done(bsg_job);
1340 qla24xx_bsg_request(struct fc_bsg_job *bsg_job)
1344 switch (bsg_job->request->msgcode) {
1347 ret = qla2x00_process_els(bsg_job);
1350 ret = qla2x00_process_ct(bsg_job);
1353 ret = qla2x00_process_vendor_specific(bsg_job);
1366 qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
1368 scsi_qla_host_t *vha = shost_priv(bsg_job->shost);
1390 && (sp_bsg->u.bsg_job == bsg_job)) {
1396 bsg_job->req->errors =
1397 bsg_job->reply->result = -EIO;
1403 bsg_job->req->errors =
1404 bsg_job->reply->result = 0;
1414 bsg_job->req->errors = bsg_job->reply->result = -ENXIO;
1419 if (bsg_job->request->msgcode == FC_BSG_HST_CT)