Lines Matching defs:bsg_job
25 struct bsg_job *bsg_job = sp->u.bsg_job;
26 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
30 __func__, sp->handle, res, bsg_job);
36 bsg_job_done(bsg_job, bsg_reply->result,
43 struct bsg_job *bsg_job = sp->u.bsg_job;
44 struct fc_bsg_request *bsg_request = bsg_job->request;
53 bsg_job->request_payload.sg_list,
54 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
58 bsg_job->reply_payload.sg_list,
59 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
68 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
69 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
71 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
72 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
141 qla24xx_proc_fcp_prio_cfg_cmd(struct bsg_job *bsg_job)
143 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
144 struct fc_bsg_request *bsg_request = bsg_job->request;
145 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
197 len = bsg_job->reply_payload.payload_len;
207 bsg_job->reply_payload.sg_list,
208 bsg_job->reply_payload.sg_cnt, ha->fcp_prio_cfg,
214 len = bsg_job->request_payload.payload_len;
234 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
235 bsg_job->request_payload.sg_cnt, ha->fcp_prio_cfg,
263 bsg_job_done(bsg_job, bsg_reply->result,
269 qla2x00_process_els(struct bsg_job *bsg_job)
271 struct fc_bsg_request *bsg_request = bsg_job->request;
285 rport = fc_bsg_to_rport(bsg_job);
296 host = fc_bsg_to_shost(bsg_job);
302 return qla_edif_process_els(vha, bsg_job);
320 if (bsg_job->request_payload.sg_cnt > 1 ||
321 bsg_job->reply_payload.sg_cnt > 1) {
325 bsg_job->request_payload.sg_cnt,
326 bsg_job->reply_payload.sg_cnt);
370 dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
371 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
373 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
374 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
379 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
380 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
382 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
383 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
388 if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) ||
389 (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) {
393 "dma_reply_sg_cnt:%x.\n", bsg_job->request_payload.sg_cnt,
394 req_sg_cnt, bsg_job->reply_payload.sg_cnt, rsp_sg_cnt);
412 sp->u.bsg_job = bsg_job;
433 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
434 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
435 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
436 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
461 qla2x00_process_ct(struct bsg_job *bsg_job)
464 struct fc_bsg_request *bsg_request = bsg_job->request;
465 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
475 dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
476 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
484 rsp_sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
485 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
493 if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) ||
494 (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) {
497 "dma_reply_sg_cnt: %x\n", bsg_job->request_payload.sg_cnt,
498 req_sg_cnt, bsg_job->reply_payload.sg_cnt, rsp_sg_cnt);
559 sp->u.bsg_job = bsg_job;
583 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
584 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
585 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
586 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
739 qla2x00_process_loopback(struct bsg_job *bsg_job)
741 struct fc_bsg_request *bsg_request = bsg_job->request;
742 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
743 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
768 bsg_job->request_payload.sg_list, bsg_job->request_payload.sg_cnt,
778 bsg_job->reply_payload.sg_list, bsg_job->reply_payload.sg_cnt,
788 if ((elreq.req_sg_cnt != bsg_job->request_payload.sg_cnt) ||
789 (elreq.rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) {
794 bsg_job->request_payload.sg_cnt, elreq.req_sg_cnt,
795 bsg_job->reply_payload.sg_cnt, elreq.rsp_sg_cnt);
799 req_data_len = rsp_data_len = bsg_job->request_payload.payload_len;
819 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
820 bsg_job->request_payload.sg_cnt, req_data, req_data_len);
948 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
949 bsg_job->reply_payload.sg_cnt, rsp_data,
953 bsg_job->reply_len = sizeof(struct fc_bsg_reply) +
955 fw_sts_ptr = bsg_job->reply + sizeof(struct fc_bsg_reply);
956 memcpy(bsg_job->reply + sizeof(struct fc_bsg_reply), response,
969 bsg_job->reply_payload.sg_list,
970 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
973 bsg_job->request_payload.sg_list,
974 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
976 bsg_job_done(bsg_job, bsg_reply->result,
982 qla84xx_reset(struct bsg_job *bsg_job)
984 struct fc_bsg_request *bsg_request = bsg_job->request;
985 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
986 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1010 bsg_job_done(bsg_job, bsg_reply->result,
1018 qla84xx_updatefw(struct bsg_job *bsg_job)
1020 struct fc_bsg_request *bsg_request = bsg_job->request;
1021 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1022 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1041 sg_cnt = dma_map_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
1042 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
1049 if (sg_cnt != bsg_job->request_payload.sg_cnt) {
1053 bsg_job->request_payload.sg_cnt, sg_cnt);
1058 data_len = bsg_job->request_payload.payload_len;
1068 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1069 bsg_job->request_payload.sg_cnt, fw_buf, data_len);
1108 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1118 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
1119 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
1122 bsg_job_done(bsg_job, bsg_reply->result,
1128 qla84xx_mgmt_cmd(struct bsg_job *bsg_job)
1130 struct fc_bsg_request *bsg_request = bsg_job->request;
1131 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1132 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1164 bsg_job->reply_payload.sg_list,
1165 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
1175 if (sg_cnt != bsg_job->reply_payload.sg_cnt) {
1179 bsg_job->reply_payload.sg_cnt, sg_cnt);
1184 data_len = bsg_job->reply_payload.payload_len;
1214 bsg_job->request_payload.sg_list,
1215 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
1226 if (sg_cnt != bsg_job->request_payload.sg_cnt) {
1230 bsg_job->request_payload.sg_cnt, sg_cnt);
1235 data_len = bsg_job->request_payload.payload_len;
1245 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1246 bsg_job->request_payload.sg_cnt, mgmt_b, data_len);
1289 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1295 bsg_job->reply_payload.payload_len;
1297 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
1298 bsg_job->reply_payload.sg_cnt, mgmt_b,
1308 dma_unmap_sg(&ha->pdev->dev, bsg_job->request_payload.sg_list,
1309 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
1311 dma_unmap_sg(&ha->pdev->dev, bsg_job->reply_payload.sg_list,
1312 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
1318 bsg_job_done(bsg_job, bsg_reply->result,
1324 qla24xx_iidma(struct bsg_job *bsg_job)
1326 struct fc_bsg_request *bsg_request = bsg_job->request;
1327 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1328 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1394 bsg_job->reply_len = sizeof(struct fc_bsg_reply) +
1405 bsg_job_done(bsg_job, bsg_reply->result,
1413 qla2x00_optrom_setup(struct bsg_job *bsg_job, scsi_qla_host_t *vha,
1416 struct fc_bsg_request *bsg_request = bsg_job->request;
1452 bsg_job->request_payload.payload_len);
1457 bsg_job->request_payload.payload_len > ha->optrom_size ?
1459 bsg_job->request_payload.payload_len;
1463 bsg_job->reply_payload.payload_len > ha->optrom_size ?
1465 bsg_job->reply_payload.payload_len;
1483 qla2x00_read_optrom(struct bsg_job *bsg_job)
1485 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1486 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1495 rval = qla2x00_optrom_setup(bsg_job, vha, 0);
1504 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
1505 bsg_job->reply_payload.sg_cnt, ha->optrom_buffer,
1514 bsg_job_done(bsg_job, bsg_reply->result,
1520 qla2x00_update_optrom(struct bsg_job *bsg_job)
1522 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1523 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1529 rval = qla2x00_optrom_setup(bsg_job, vha, 1);
1538 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1539 bsg_job->request_payload.sg_cnt, ha->optrom_buffer,
1555 bsg_job_done(bsg_job, bsg_reply->result,
1561 qla2x00_update_fru_versions(struct bsg_job *bsg_job)
1563 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1564 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1581 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1582 bsg_job->request_payload.sg_cnt, list, sizeof(bsg));
1605 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1607 bsg_job_done(bsg_job, bsg_reply->result,
1614 qla2x00_read_fru_status(struct bsg_job *bsg_job)
1616 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1617 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1632 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1633 bsg_job->request_payload.sg_cnt, sr, sizeof(*sr));
1646 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
1647 bsg_job->reply_payload.sg_cnt, sr, sizeof(*sr));
1655 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1658 bsg_job_done(bsg_job, bsg_reply->result,
1665 qla2x00_write_fru_status(struct bsg_job *bsg_job)
1667 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1668 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1683 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1684 bsg_job->request_payload.sg_cnt, sr, sizeof(*sr));
1703 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1705 bsg_job_done(bsg_job, bsg_reply->result,
1712 qla2x00_write_i2c(struct bsg_job *bsg_job)
1714 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1715 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1730 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1731 bsg_job->request_payload.sg_cnt, i2c, sizeof(*i2c));
1749 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1751 bsg_job_done(bsg_job, bsg_reply->result,
1758 qla2x00_read_i2c(struct bsg_job *bsg_job)
1760 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1761 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1776 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1777 bsg_job->request_payload.sg_cnt, i2c, sizeof(*i2c));
1789 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
1790 bsg_job->reply_payload.sg_cnt, i2c, sizeof(*i2c));
1798 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1801 bsg_job_done(bsg_job, bsg_reply->result,
1808 qla24xx_process_bidir_cmd(struct bsg_job *bsg_job)
1810 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
1811 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
1896 bsg_job->request_payload.sg_list,
1897 bsg_job->request_payload.sg_cnt,
1906 bsg_job->reply_payload.sg_list, bsg_job->reply_payload.sg_cnt,
1914 if ((req_sg_cnt != bsg_job->request_payload.sg_cnt) ||
1915 (rsp_sg_cnt != bsg_job->reply_payload.sg_cnt)) {
1920 bsg_job->request_payload.sg_cnt, req_sg_cnt,
1921 bsg_job->reply_payload.sg_cnt, rsp_sg_cnt);
1926 req_data_len = bsg_job->request_payload.payload_len;
1927 rsp_data_len = bsg_job->reply_payload.payload_len;
1946 sp->u.bsg_job = bsg_job;
1964 bsg_job->reply_payload.sg_list,
1965 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
1968 bsg_job->request_payload.sg_list,
1969 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
1976 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
1979 bsg_job_done(bsg_job, bsg_reply->result,
1986 qlafx00_mgmt_cmd(struct bsg_job *bsg_job)
1988 struct fc_bsg_request *bsg_request = bsg_job->request;
1989 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2016 bsg_job->request_payload.sg_list,
2017 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
2028 bsg_job->reply_payload.sg_list,
2029 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
2040 "dma_reply_sg_cnt: %x\n", bsg_job->request_payload.sg_cnt,
2041 req_sg_cnt, bsg_job->reply_payload.sg_cnt, rsp_sg_cnt);
2072 sp->u.bsg_job = bsg_job;
2096 bsg_job->reply_payload.sg_list,
2097 bsg_job->reply_payload.sg_cnt, DMA_FROM_DEVICE);
2101 bsg_job->request_payload.sg_list,
2102 bsg_job->request_payload.sg_cnt, DMA_TO_DEVICE);
2109 qla26xx_serdes_op(struct bsg_job *bsg_job)
2111 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2112 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2119 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2120 bsg_job->request_payload.sg_cnt, &sr, sizeof(sr));
2129 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2130 bsg_job->reply_payload.sg_cnt, &sr, sizeof(sr));
2143 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
2145 bsg_job_done(bsg_job, bsg_reply->result,
2151 qla8044_serdes_op(struct bsg_job *bsg_job)
2153 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2154 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2161 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2162 bsg_job->request_payload.sg_cnt, &sr, sizeof(sr));
2171 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2172 bsg_job->reply_payload.sg_cnt, &sr, sizeof(sr));
2185 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
2187 bsg_job_done(bsg_job, bsg_reply->result,
2193 qla27xx_get_flash_upd_cap(struct bsg_job *bsg_job)
2195 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2196 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2210 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2211 bsg_job->reply_payload.sg_cnt, &cap, sizeof(cap));
2217 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
2219 bsg_job_done(bsg_job, bsg_reply->result,
2225 qla27xx_set_flash_upd_cap(struct bsg_job *bsg_job)
2227 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2228 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2238 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2239 bsg_job->request_payload.sg_cnt, &cap, sizeof(cap));
2263 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
2265 bsg_job_done(bsg_job, bsg_reply->result,
2271 qla27xx_get_bbcr_data(struct bsg_job *bsg_job)
2273 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2274 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2316 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2317 bsg_job->reply_payload.sg_cnt, &bbcr, sizeof(bbcr));
2322 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
2324 bsg_job_done(bsg_job, bsg_reply->result,
2330 qla2x00_get_priv_stats(struct bsg_job *bsg_job)
2332 struct fc_bsg_request *bsg_request = bsg_job->request;
2333 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2334 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2369 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2370 bsg_job->reply_payload.sg_cnt, stats, sizeof(*stats));
2377 bsg_job->reply_len = sizeof(*bsg_reply);
2379 bsg_job_done(bsg_job, bsg_reply->result,
2389 qla2x00_do_dport_diagnostics(struct bsg_job *bsg_job)
2391 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2392 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2408 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2409 bsg_job->request_payload.sg_cnt, dd, sizeof(*dd));
2414 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2415 bsg_job->reply_payload.sg_cnt, dd, sizeof(*dd));
2422 bsg_job->reply_len = sizeof(*bsg_reply);
2424 bsg_job_done(bsg_job, bsg_reply->result,
2433 qla2x00_do_dport_diagnostics_v2(struct bsg_job *bsg_job)
2435 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2436 struct Scsi_Host *host = fc_bsg_to_shost(bsg_job);
2451 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2452 bsg_job->request_payload.sg_cnt, dd, sizeof(*dd));
2501 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2502 bsg_job->reply_payload.sg_cnt, dd, sizeof(*dd));
2505 bsg_job->reply_len = sizeof(*bsg_reply);
2507 bsg_job_done(bsg_job, bsg_reply->result,
2516 qla2x00_get_flash_image_status(struct bsg_job *bsg_job)
2518 scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job));
2519 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2545 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2546 bsg_job->reply_payload.sg_cnt, ®ions, sizeof(regions));
2551 bsg_job->reply_len = sizeof(struct fc_bsg_reply);
2552 bsg_job_done(bsg_job, bsg_reply->result,
2559 qla2x00_manage_host_stats(struct bsg_job *bsg_job)
2561 scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job));
2562 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2573 req_data_len = bsg_job->request_payload.payload_len;
2587 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2588 bsg_job->request_payload.sg_cnt, req_data,
2611 bsg_job->reply_payload.payload_len = sizeof(struct ql_vnd_mng_host_stats_resp);
2615 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2616 bsg_job->reply_payload.sg_cnt,
2621 bsg_job_done(bsg_job, bsg_reply->result,
2628 qla2x00_get_host_stats(struct bsg_job *bsg_job)
2630 scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job));
2631 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2643 req_data_len = bsg_job->request_payload.payload_len;
2657 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2658 bsg_job->request_payload.sg_cnt, req_data, req_data_len);
2679 if (response_len > bsg_job->reply_payload.payload_len) {
2682 bsg_job->reply_payload.payload_len = sizeof(struct ql_vnd_mng_host_stats_resp);
2685 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2686 bsg_job->reply_payload.sg_cnt, &rsp_data,
2690 bsg_job_done(bsg_job, bsg_reply->result,
2701 ret = qla2xxx_get_ini_stats(fc_bsg_to_shost(bsg_job), req_data->stat_type,
2707 bsg_reply->reply_payload_rcv_len = sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2708 bsg_job->reply_payload.sg_cnt,
2711 bsg_job_done(bsg_job, bsg_reply->result,
2733 qla2x00_get_tgt_stats(struct bsg_job *bsg_job)
2735 scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job));
2736 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2749 req_data_len = bsg_job->request_payload.payload_len;
2763 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2764 bsg_job->request_payload.sg_cnt,
2777 if (response_len > bsg_job->reply_payload.payload_len) {
2780 bsg_job->reply_payload.payload_len = sizeof(struct ql_vnd_mng_host_stats_resp);
2783 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2784 bsg_job->reply_payload.sg_cnt, data,
2788 bsg_job_done(bsg_job, bsg_reply->result,
2801 ret = qla2xxx_get_tgt_stats(fc_bsg_to_shost(bsg_job), req_data->stat_type,
2807 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2808 bsg_job->reply_payload.sg_cnt, data,
2811 bsg_job_done(bsg_job, bsg_reply->result,
2822 qla2x00_manage_host_port(struct bsg_job *bsg_job)
2824 scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job));
2825 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2831 req_data_len = bsg_job->request_payload.payload_len;
2845 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
2846 bsg_job->request_payload.sg_cnt, req_data, req_data_len);
2866 bsg_job->reply_payload.payload_len = sizeof(struct ql_vnd_mng_host_port_resp);
2869 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
2870 bsg_job->reply_payload.sg_cnt, &rsp_data,
2873 bsg_job_done(bsg_job, bsg_reply->result,
2880 qla2x00_process_vendor_specific(struct scsi_qla_host *vha, struct bsg_job *bsg_job)
2882 struct fc_bsg_request *bsg_request = bsg_job->request;
2889 return qla2x00_process_loopback(bsg_job);
2892 return qla84xx_reset(bsg_job);
2895 return qla84xx_updatefw(bsg_job);
2898 return qla84xx_mgmt_cmd(bsg_job);
2901 return qla24xx_iidma(bsg_job);
2904 return qla24xx_proc_fcp_prio_cfg_cmd(bsg_job);
2907 return qla2x00_read_optrom(bsg_job);
2910 return qla2x00_update_optrom(bsg_job);
2913 return qla2x00_update_fru_versions(bsg_job);
2916 return qla2x00_read_fru_status(bsg_job);
2919 return qla2x00_write_fru_status(bsg_job);
2922 return qla2x00_write_i2c(bsg_job);
2925 return qla2x00_read_i2c(bsg_job);
2928 return qla24xx_process_bidir_cmd(bsg_job);
2931 return qlafx00_mgmt_cmd(bsg_job);
2934 return qla26xx_serdes_op(bsg_job);
2937 return qla8044_serdes_op(bsg_job);
2940 return qla27xx_get_flash_upd_cap(bsg_job);
2943 return qla27xx_set_flash_upd_cap(bsg_job);
2946 return qla27xx_get_bbcr_data(bsg_job);
2950 return qla2x00_get_priv_stats(bsg_job);
2953 return qla2x00_do_dport_diagnostics(bsg_job);
2956 return qla2x00_do_dport_diagnostics_v2(bsg_job);
2959 return qla_edif_app_mgmt(bsg_job);
2962 return qla2x00_get_flash_image_status(bsg_job);
2965 return qla2x00_manage_host_stats(bsg_job);
2968 return qla2x00_get_host_stats(bsg_job);
2971 return qla2x00_get_tgt_stats(bsg_job);
2974 return qla2x00_manage_host_port(bsg_job);
2977 return qla2x00_mailbox_passthru(bsg_job);
2985 qla24xx_bsg_request(struct bsg_job *bsg_job)
2987 struct fc_bsg_request *bsg_request = bsg_job->request;
2988 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
2998 rport = fc_bsg_to_rport(bsg_job);
3004 host = fc_bsg_to_shost(bsg_job);
3035 __func__, bsg_request->msgcode, bsg_job);
3040 ret = qla2x00_process_els(bsg_job);
3043 ret = qla2x00_process_ct(bsg_job);
3046 ret = qla2x00_process_vendor_specific(vha, bsg_job);
3063 qla24xx_bsg_timeout(struct bsg_job *bsg_job)
3065 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
3066 scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job));
3074 __func__, bsg_job);
3096 sp->u.bsg_job == bsg_job) {
3127 int qla2x00_mailbox_passthru(struct bsg_job *bsg_job)
3129 struct fc_bsg_reply *bsg_reply = bsg_job->reply;
3130 scsi_qla_host_t *vha = shost_priv(fc_bsg_to_shost(bsg_job));
3136 req_data_len = bsg_job->request_payload.payload_len;
3149 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
3150 bsg_job->request_payload.sg_cnt, req_data, ptsize);
3154 sg_copy_from_buffer(bsg_job->reply_payload.sg_list,
3155 bsg_job->reply_payload.sg_cnt, req_data, ptsize);
3163 bsg_job->reply_len = sizeof(*bsg_job->reply);
3165 bsg_job_done(bsg_job, bsg_reply->result, bsg_reply->reply_payload_rcv_len);