Lines Matching full:job
71 /* driver data associated with the job */
96 struct bsg_job *set_job; /* job waiting for this iocb to finish */
305 struct bsg_job *job; in lpfc_bsg_send_mgmt_cmd_cmp() local
316 /* Determine if job has been aborted */ in lpfc_bsg_send_mgmt_cmd_cmp()
318 job = dd_data->set_job; in lpfc_bsg_send_mgmt_cmd_cmp()
319 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp()
320 bsg_reply = job->reply; in lpfc_bsg_send_mgmt_cmd_cmp()
321 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_send_mgmt_cmd_cmp()
322 job->dd_data = NULL; in lpfc_bsg_send_mgmt_cmd_cmp()
342 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp()
361 lpfc_bsg_copy_data(rmp, &job->reply_payload, in lpfc_bsg_send_mgmt_cmd_cmp()
374 /* Complete the job if the job is still active */ in lpfc_bsg_send_mgmt_cmd_cmp()
376 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp()
378 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_send_mgmt_cmd_cmp()
386 * @job: fc_bsg_job to handle
389 lpfc_bsg_send_mgmt_cmd(struct bsg_job *job) in lpfc_bsg_send_mgmt_cmd() argument
391 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_send_mgmt_cmd()
392 struct lpfc_rport_data *rdata = fc_bsg_to_rport(job)->dd_data; in lpfc_bsg_send_mgmt_cmd()
395 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_send_mgmt_cmd()
448 cmp = lpfc_alloc_bsg_buffers(phba, job->request_payload.payload_len, in lpfc_bsg_send_mgmt_cmd()
454 lpfc_bsg_copy_data(cmp, &job->request_payload, in lpfc_bsg_send_mgmt_cmd()
455 job->request_payload.payload_len, 1); in lpfc_bsg_send_mgmt_cmd()
459 rmp = lpfc_alloc_bsg_buffers(phba, job->reply_payload.payload_len, 0, in lpfc_bsg_send_mgmt_cmd()
486 dd_data->set_job = job; in lpfc_bsg_send_mgmt_cmd()
489 job->dd_data = dd_data; in lpfc_bsg_send_mgmt_cmd()
541 job->dd_data = NULL; in lpfc_bsg_send_mgmt_cmd()
568 struct bsg_job *job; in lpfc_bsg_rport_els_cmp() local
583 /* Determine if job has been aborted */ in lpfc_bsg_rport_els_cmp()
585 job = dd_data->set_job; in lpfc_bsg_rport_els_cmp()
586 if (job) { in lpfc_bsg_rport_els_cmp()
587 bsg_reply = job->reply; in lpfc_bsg_rport_els_cmp()
588 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_rport_els_cmp()
589 job->dd_data = NULL; in lpfc_bsg_rport_els_cmp()
604 /* Copy the completed job data or determine the job status if job is in lpfc_bsg_rport_els_cmp()
608 if (job) { in lpfc_bsg_rport_els_cmp()
612 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_rport_els_cmp()
613 job->reply_payload.sg_cnt, in lpfc_bsg_rport_els_cmp()
641 /* Complete the job if the job is still active */ in lpfc_bsg_rport_els_cmp()
643 if (job) { in lpfc_bsg_rport_els_cmp()
645 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_rport_els_cmp()
653 * @job: fc_bsg_job to handle
656 lpfc_bsg_rport_els(struct bsg_job *job) in lpfc_bsg_rport_els() argument
658 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_rport_els()
660 struct lpfc_rport_data *rdata = fc_bsg_to_rport(job)->dd_data; in lpfc_bsg_rport_els()
662 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_rport_els()
663 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_rport_els()
680 if (job->request_payload.payload_len > FCELSSIZE) { in lpfc_bsg_rport_els()
695 cmdsize = job->request_payload.payload_len; in lpfc_bsg_rport_els()
703 * and response to ensure if the job times out and the request is freed, in lpfc_bsg_rport_els()
715 sg_copy_to_buffer(job->request_payload.sg_list, in lpfc_bsg_rport_els()
716 job->request_payload.sg_cnt, in lpfc_bsg_rport_els()
732 dd_data->set_job = job; in lpfc_bsg_rport_els()
736 job->dd_data = dd_data; in lpfc_bsg_rport_els()
778 job->dd_data = NULL; in lpfc_bsg_rport_els()
920 struct bsg_job *job = NULL; in lpfc_bsg_ct_unsol_event() local
1107 job = dd_data->set_job; in lpfc_bsg_ct_unsol_event()
1110 if (job) { in lpfc_bsg_ct_unsol_event()
1111 bsg_reply = job->reply; in lpfc_bsg_ct_unsol_event()
1115 job->dd_data = NULL; in lpfc_bsg_ct_unsol_event()
1116 /* complete the job back to userspace */ in lpfc_bsg_ct_unsol_event()
1118 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_ct_unsol_event()
1177 * @job: SET_EVENT fc_bsg_job
1180 lpfc_bsg_hba_set_event(struct bsg_job *job) in lpfc_bsg_hba_set_event() argument
1182 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_hba_set_event()
1184 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_hba_set_event()
1192 if (job->request_len < in lpfc_bsg_hba_set_event()
1247 dd_data->set_job = job; /* for unsolicited command */ in lpfc_bsg_hba_set_event()
1248 job->dd_data = dd_data; /* for fc transport timeout callback*/ in lpfc_bsg_hba_set_event()
1250 return 0; /* call job done later */ in lpfc_bsg_hba_set_event()
1254 job->dd_data = NULL; in lpfc_bsg_hba_set_event()
1260 * @job: GET_EVENT fc_bsg_job
1263 lpfc_bsg_hba_get_event(struct bsg_job *job) in lpfc_bsg_hba_get_event() argument
1265 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_hba_get_event()
1267 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_hba_get_event()
1268 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_hba_get_event()
1276 if (job->request_len < in lpfc_bsg_hba_get_event()
1314 if (evt_dat->len > job->request_payload.payload_len) { in lpfc_bsg_hba_get_event()
1315 evt_dat->len = job->request_payload.payload_len; in lpfc_bsg_hba_get_event()
1319 job->request_payload.payload_len); in lpfc_bsg_hba_get_event()
1326 sg_copy_from_buffer(job->request_payload.sg_list, in lpfc_bsg_hba_get_event()
1327 job->request_payload.sg_cnt, in lpfc_bsg_hba_get_event()
1340 job->dd_data = NULL; in lpfc_bsg_hba_get_event()
1342 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_hba_get_event()
1347 job->dd_data = NULL; in lpfc_bsg_hba_get_event()
1375 struct bsg_job *job; in lpfc_issue_ct_rsp_cmp() local
1385 /* Determine if job has been aborted */ in lpfc_issue_ct_rsp_cmp()
1387 job = dd_data->set_job; in lpfc_issue_ct_rsp_cmp()
1388 if (job) { in lpfc_issue_ct_rsp_cmp()
1389 /* Prevent timeout handling from trying to abort job */ in lpfc_issue_ct_rsp_cmp()
1390 job->dd_data = NULL; in lpfc_issue_ct_rsp_cmp()
1406 /* Copy the completed job data or set the error status */ in lpfc_issue_ct_rsp_cmp()
1408 if (job) { in lpfc_issue_ct_rsp_cmp()
1409 bsg_reply = job->reply; in lpfc_issue_ct_rsp_cmp()
1438 /* Complete the job if the job is still active */ in lpfc_issue_ct_rsp_cmp()
1440 if (job) { in lpfc_issue_ct_rsp_cmp()
1442 bsg_job_done(job, bsg_reply->result, in lpfc_issue_ct_rsp_cmp()
1451 * @job: Pointer to the job object.
1458 lpfc_issue_ct_rsp(struct lpfc_hba *phba, struct bsg_job *job, uint32_t tag, in lpfc_issue_ct_rsp() argument
1535 dd_data->set_job = job; in lpfc_issue_ct_rsp()
1543 job->dd_data = dd_data; in lpfc_issue_ct_rsp()
1568 job->dd_data = NULL; in lpfc_issue_ct_rsp()
1581 * @job: SEND_MGMT_RESP fc_bsg_job
1584 lpfc_bsg_send_mgmt_rsp(struct bsg_job *job) in lpfc_bsg_send_mgmt_rsp() argument
1586 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_send_mgmt_rsp()
1588 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_send_mgmt_rsp()
1589 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_send_mgmt_rsp()
1597 (unsigned long)job->request_payload.payload_len; in lpfc_bsg_send_mgmt_rsp()
1623 cmp = lpfc_alloc_bsg_buffers(phba, job->request_payload.payload_len, in lpfc_bsg_send_mgmt_rsp()
1629 lpfc_bsg_copy_data(cmp, &job->request_payload, in lpfc_bsg_send_mgmt_rsp()
1630 job->request_payload.payload_len, 1); in lpfc_bsg_send_mgmt_rsp()
1632 rc = lpfc_issue_ct_rsp(phba, job, tag, cmp, bmp, bpl_entries); in lpfc_bsg_send_mgmt_rsp()
1648 job->dd_data = NULL; in lpfc_bsg_send_mgmt_rsp()
1738 * @job: LPFC_BSG_VENDOR_DIAG_MODE
1749 lpfc_sli3_bsg_diag_loopback_mode(struct lpfc_hba *phba, struct bsg_job *job) in lpfc_sli3_bsg_diag_loopback_mode() argument
1751 struct fc_bsg_request *bsg_request = job->request; in lpfc_sli3_bsg_diag_loopback_mode()
1752 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_sli3_bsg_diag_loopback_mode()
1764 if (job->request_len < sizeof(struct fc_bsg_request) + in lpfc_sli3_bsg_diag_loopback_mode()
1769 job->request_len, in lpfc_sli3_bsg_diag_loopback_mode()
1856 /* complete the job back to userspace if no error */ in lpfc_sli3_bsg_diag_loopback_mode()
1858 bsg_job_done(job, bsg_reply->result, in lpfc_sli3_bsg_diag_loopback_mode()
2009 * @job: LPFC_BSG_VENDOR_DIAG_MODE
2015 lpfc_sli4_bsg_diag_loopback_mode(struct lpfc_hba *phba, struct bsg_job *job) in lpfc_sli4_bsg_diag_loopback_mode() argument
2017 struct fc_bsg_request *bsg_request = job->request; in lpfc_sli4_bsg_diag_loopback_mode()
2018 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_sli4_bsg_diag_loopback_mode()
2026 if (job->request_len < sizeof(struct fc_bsg_request) + in lpfc_sli4_bsg_diag_loopback_mode()
2031 job->request_len, in lpfc_sli4_bsg_diag_loopback_mode()
2218 /* complete the job back to userspace if no error */ in lpfc_sli4_bsg_diag_loopback_mode()
2220 bsg_job_done(job, bsg_reply->result, in lpfc_sli4_bsg_diag_loopback_mode()
2227 * @job: LPFC_BSG_VENDOR_DIAG_MODE
2233 lpfc_bsg_diag_loopback_mode(struct bsg_job *job) in lpfc_bsg_diag_loopback_mode() argument
2240 shost = fc_bsg_to_shost(job); in lpfc_bsg_diag_loopback_mode()
2251 rc = lpfc_sli3_bsg_diag_loopback_mode(phba, job); in lpfc_bsg_diag_loopback_mode()
2254 rc = lpfc_sli4_bsg_diag_loopback_mode(phba, job); in lpfc_bsg_diag_loopback_mode()
2263 * @job: LPFC_BSG_VENDOR_DIAG_MODE_END
2269 lpfc_sli4_bsg_diag_mode_end(struct bsg_job *job) in lpfc_sli4_bsg_diag_mode_end() argument
2271 struct fc_bsg_request *bsg_request = job->request; in lpfc_sli4_bsg_diag_mode_end()
2272 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_sli4_bsg_diag_mode_end()
2280 shost = fc_bsg_to_shost(job); in lpfc_sli4_bsg_diag_mode_end()
2333 /* complete the job back to userspace if no error */ in lpfc_sli4_bsg_diag_mode_end()
2335 bsg_job_done(job, bsg_reply->result, in lpfc_sli4_bsg_diag_mode_end()
2342 * @job: LPFC_BSG_VENDOR_DIAG_LINK_TEST
2348 lpfc_sli4_bsg_link_diag_test(struct bsg_job *job) in lpfc_sli4_bsg_link_diag_test() argument
2350 struct fc_bsg_request *bsg_request = job->request; in lpfc_sli4_bsg_link_diag_test()
2351 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_sli4_bsg_link_diag_test()
2364 shost = fc_bsg_to_shost(job); in lpfc_sli4_bsg_link_diag_test()
2384 if (job->request_len < sizeof(struct fc_bsg_request) + in lpfc_sli4_bsg_link_diag_test()
2389 job->request_len, in lpfc_sli4_bsg_link_diag_test()
2454 if (job->reply_len < sizeof(*bsg_reply) + sizeof(*diag_status_reply)) { in lpfc_sli4_bsg_link_diag_test()
2460 job->reply_len); in lpfc_sli4_bsg_link_diag_test()
2482 /* complete the job back to userspace if no error */ in lpfc_sli4_bsg_link_diag_test()
2484 bsg_job_done(job, bsg_reply->result, in lpfc_sli4_bsg_link_diag_test()
3018 * @job: LPFC_BSG_VENDOR_DIAG_TEST fc_bsg_job
3036 lpfc_bsg_diag_loopback_run(struct bsg_job *job) in lpfc_bsg_diag_loopback_run() argument
3038 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_diag_loopback_run()
3039 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_diag_loopback_run()
3069 if (job->request_len < in lpfc_bsg_diag_loopback_run()
3078 if (job->request_payload.payload_len != in lpfc_bsg_diag_loopback_run()
3079 job->reply_payload.payload_len) { in lpfc_bsg_diag_loopback_run()
3096 size = job->request_payload.payload_len; in lpfc_bsg_diag_loopback_run()
3128 sg_copy_to_buffer(job->request_payload.sg_list, in lpfc_bsg_diag_loopback_run()
3129 job->request_payload.sg_cnt, in lpfc_bsg_diag_loopback_run()
3290 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_diag_loopback_run()
3291 job->reply_payload.sg_cnt, in lpfc_bsg_diag_loopback_run()
3324 job->dd_data = NULL; in lpfc_bsg_diag_loopback_run()
3325 /* complete the job back to userspace if no error */ in lpfc_bsg_diag_loopback_run()
3327 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_diag_loopback_run()
3334 * @job: GET_DFC_REV fc_bsg_job
3337 lpfc_bsg_get_dfc_rev(struct bsg_job *job) in lpfc_bsg_get_dfc_rev() argument
3339 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_get_dfc_rev()
3340 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_get_dfc_rev()
3345 if (job->request_len < in lpfc_bsg_get_dfc_rev()
3357 if (job->reply_len < sizeof(*bsg_reply) + sizeof(*event_reply)) { in lpfc_bsg_get_dfc_rev()
3370 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_get_dfc_rev()
3391 struct bsg_job *job; in lpfc_bsg_issue_mbox_cmpl() local
3406 /* Determine if job has been aborted */ in lpfc_bsg_issue_mbox_cmpl()
3409 job = dd_data->set_job; in lpfc_bsg_issue_mbox_cmpl()
3410 if (job) { in lpfc_bsg_issue_mbox_cmpl()
3411 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_issue_mbox_cmpl()
3412 job->dd_data = NULL; in lpfc_bsg_issue_mbox_cmpl()
3416 /* Copy the mailbox data to the job if it is still active */ in lpfc_bsg_issue_mbox_cmpl()
3418 if (job) { in lpfc_bsg_issue_mbox_cmpl()
3419 bsg_reply = job->reply; in lpfc_bsg_issue_mbox_cmpl()
3420 size = job->reply_payload.payload_len; in lpfc_bsg_issue_mbox_cmpl()
3422 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_issue_mbox_cmpl()
3423 job->reply_payload.sg_cnt, in lpfc_bsg_issue_mbox_cmpl()
3432 /* Complete the job if the job is still active */ in lpfc_bsg_issue_mbox_cmpl()
3434 if (job) { in lpfc_bsg_issue_mbox_cmpl()
3436 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_issue_mbox_cmpl()
3454 /* return negative error values for bsg job */ in lpfc_bsg_check_cmd_access()
3557 * @job: pointer to bsg_job struct
3572 struct bsg_job *job, in lpfc_rd_obj_emb0_handle_job() argument
3583 if (!job) { in lpfc_rd_obj_emb0_handle_job()
3585 "2496 NULL job\n"); in lpfc_rd_obj_emb0_handle_job()
3618 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_rd_obj_emb0_handle_job()
3619 job->reply_payload.sg_cnt, in lpfc_rd_obj_emb0_handle_job()
3629 extra_bytes = sg_copy_buffer(job->reply_payload.sg_list, in lpfc_rd_obj_emb0_handle_job()
3630 job->reply_payload.sg_cnt, in lpfc_rd_obj_emb0_handle_job()
3649 * lpfc_bsg_issue_mbox_ext_handle_job - job handler for multi-buffer mbox cmpl
3653 * This is routine handles BSG job for mailbox commands completions with
3660 struct bsg_job *job; in lpfc_bsg_issue_mbox_ext_handle_job() local
3672 /* Determine if job has been aborted */ in lpfc_bsg_issue_mbox_ext_handle_job()
3674 job = dd_data->set_job; in lpfc_bsg_issue_mbox_ext_handle_job()
3675 if (job) { in lpfc_bsg_issue_mbox_ext_handle_job()
3676 bsg_reply = job->reply; in lpfc_bsg_issue_mbox_ext_handle_job()
3677 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_issue_mbox_ext_handle_job()
3678 job->dd_data = NULL; in lpfc_bsg_issue_mbox_ext_handle_job()
3707 if (job) { in lpfc_bsg_issue_mbox_ext_handle_job()
3710 job, in lpfc_bsg_issue_mbox_ext_handle_job()
3721 /* Complete the job if the job is still active */ in lpfc_bsg_issue_mbox_ext_handle_job()
3723 if (job) { in lpfc_bsg_issue_mbox_ext_handle_job()
3724 size = job->reply_payload.payload_len; in lpfc_bsg_issue_mbox_ext_handle_job()
3726 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_issue_mbox_ext_handle_job()
3727 job->reply_payload.sg_cnt, in lpfc_bsg_issue_mbox_ext_handle_job()
3736 "(x%x/x%x) complete bsg job done, bsize:%d\n", in lpfc_bsg_issue_mbox_ext_handle_job()
3739 job->reply_payload.payload_len); in lpfc_bsg_issue_mbox_ext_handle_job()
3757 return job; in lpfc_bsg_issue_mbox_ext_handle_job()
3771 struct bsg_job *job; in lpfc_bsg_issue_read_mbox_ext_cmpl() local
3774 job = lpfc_bsg_issue_mbox_ext_handle_job(phba, pmboxq); in lpfc_bsg_issue_read_mbox_ext_cmpl()
3776 /* handle the BSG job with mailbox command */ in lpfc_bsg_issue_read_mbox_ext_cmpl()
3777 if (!job) in lpfc_bsg_issue_read_mbox_ext_cmpl()
3791 /* if the job is still active, call job done */ in lpfc_bsg_issue_read_mbox_ext_cmpl()
3792 if (job) { in lpfc_bsg_issue_read_mbox_ext_cmpl()
3793 bsg_reply = job->reply; in lpfc_bsg_issue_read_mbox_ext_cmpl()
3794 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_issue_read_mbox_ext_cmpl()
3811 struct bsg_job *job; in lpfc_bsg_issue_write_mbox_ext_cmpl() local
3814 job = lpfc_bsg_issue_mbox_ext_handle_job(phba, pmboxq); in lpfc_bsg_issue_write_mbox_ext_cmpl()
3816 /* handle the BSG job with the mailbox command */ in lpfc_bsg_issue_write_mbox_ext_cmpl()
3817 if (!job) in lpfc_bsg_issue_write_mbox_ext_cmpl()
3829 /* if the job is still active, call job done */ in lpfc_bsg_issue_write_mbox_ext_cmpl()
3830 if (job) { in lpfc_bsg_issue_write_mbox_ext_cmpl()
3831 bsg_reply = job->reply; in lpfc_bsg_issue_write_mbox_ext_cmpl()
3832 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_issue_write_mbox_ext_cmpl()
3935 * @job: Pointer to the job object.
3943 lpfc_bsg_sli_cfg_read_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_sli_cfg_read_cmd_ext() argument
3947 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_sli_cfg_read_cmd_ext()
4133 dd_data->set_job = job; in lpfc_bsg_sli_cfg_read_cmd_ext()
4136 job->dd_data = dd_data; in lpfc_bsg_sli_cfg_read_cmd_ext()
4178 * @job: Pointer to the job object.
4186 lpfc_bsg_sli_cfg_write_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_sli_cfg_write_cmd_ext() argument
4190 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_sli_cfg_write_cmd_ext()
4191 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_sli_cfg_write_cmd_ext()
4305 dd_data->set_job = job; in lpfc_bsg_sli_cfg_write_cmd_ext()
4308 job->dd_data = dd_data; in lpfc_bsg_sli_cfg_write_cmd_ext()
4330 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_sli_cfg_write_cmd_ext()
4345 * @job: Pointer to the job object.
4353 lpfc_bsg_handle_sli_cfg_mbox(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_handle_sli_cfg_mbox() argument
4380 rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4390 rc = lpfc_bsg_sli_cfg_write_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4412 rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4443 rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4451 rc = lpfc_bsg_sli_cfg_write_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4498 * @job: Pointer to the job object.
4504 lpfc_bsg_read_ebuf_get(struct lpfc_hba *phba, struct bsg_job *job) in lpfc_bsg_read_ebuf_get() argument
4506 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_read_ebuf_get()
4545 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_read_ebuf_get()
4546 job->reply_payload.sg_cnt, in lpfc_bsg_read_ebuf_get()
4559 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_read_ebuf_get()
4568 * @job: Pointer to the job object.
4575 lpfc_bsg_write_ebuf_set(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_write_ebuf_set() argument
4578 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_write_ebuf_set()
4593 size = job->request_payload.payload_len; in lpfc_bsg_write_ebuf_set()
4594 sg_copy_to_buffer(job->request_payload.sg_list, in lpfc_bsg_write_ebuf_set()
4595 job->request_payload.sg_cnt, in lpfc_bsg_write_ebuf_set()
4654 dd_data->set_job = job; in lpfc_bsg_write_ebuf_set()
4657 job->dd_data = dd_data; in lpfc_bsg_write_ebuf_set()
4678 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_write_ebuf_set()
4694 * @job: Pointer to the job object.
4701 lpfc_bsg_handle_sli_cfg_ebuf(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_handle_sli_cfg_ebuf() argument
4719 rc = lpfc_bsg_read_ebuf_get(phba, job); in lpfc_bsg_handle_sli_cfg_ebuf()
4731 rc = lpfc_bsg_write_ebuf_set(phba, job, dmabuf); in lpfc_bsg_handle_sli_cfg_ebuf()
4739 * @job: Pointer to the job object.
4746 lpfc_bsg_handle_sli_cfg_ext(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_handle_sli_cfg_ext() argument
4749 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_handle_sli_cfg_ext()
4767 rc = lpfc_bsg_handle_sli_cfg_mbox(phba, job, dmabuf); in lpfc_bsg_handle_sli_cfg_ext()
4790 rc = lpfc_bsg_handle_sli_cfg_ebuf(phba, job, dmabuf); in lpfc_bsg_handle_sli_cfg_ext()
4813 * @job: Pointer to the job object.
4820 * being reset) and complete the job, otherwise issue the mailbox command and
4824 lpfc_bsg_issue_mbox(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_issue_mbox() argument
4827 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_issue_mbox()
4828 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_issue_mbox()
4850 if (job->request_payload.payload_len > BSG_MBOX_SIZE) { in lpfc_bsg_issue_mbox()
4882 size = job->request_payload.payload_len; in lpfc_bsg_issue_mbox()
4883 sg_copy_to_buffer(job->request_payload.sg_list, in lpfc_bsg_issue_mbox()
4884 job->request_payload.sg_cnt, pmbx, size); in lpfc_bsg_issue_mbox()
4888 rc = lpfc_bsg_handle_sli_cfg_ext(phba, job, dmabuf); in lpfc_bsg_issue_mbox()
4922 if (unlikely(job->reply_payload.payload_len > BSG_MBOX_SIZE)) { in lpfc_bsg_issue_mbox()
4929 job->reply_payload.payload_len); in lpfc_bsg_issue_mbox()
5081 dd_data->set_job = job; in lpfc_bsg_issue_mbox()
5088 job->dd_data = dd_data; in lpfc_bsg_issue_mbox()
5098 /* job finished, copy the data */ in lpfc_bsg_issue_mbox()
5101 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_issue_mbox()
5102 job->reply_payload.sg_cnt, in lpfc_bsg_issue_mbox()
5111 return 1; /* job started */ in lpfc_bsg_issue_mbox()
5114 /* common exit for error or job completed inline */ in lpfc_bsg_issue_mbox()
5126 * @job: MBOX fc_bsg_job for LPFC_BSG_VENDOR_MBOX.
5129 lpfc_bsg_mbox_cmd(struct bsg_job *job) in lpfc_bsg_mbox_cmd() argument
5131 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_mbox_cmd()
5132 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_mbox_cmd()
5133 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_mbox_cmd()
5140 if (job->request_len < in lpfc_bsg_mbox_cmd()
5146 (int)(job->request_len - in lpfc_bsg_mbox_cmd()
5155 rc = lpfc_bsg_issue_mbox(phba, job, vport); in lpfc_bsg_mbox_cmd()
5158 /* job done */ in lpfc_bsg_mbox_cmd()
5160 job->dd_data = NULL; in lpfc_bsg_mbox_cmd()
5161 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_mbox_cmd()
5164 /* job submitted, will complete later*/ in lpfc_bsg_mbox_cmd()
5169 job->dd_data = NULL; in lpfc_bsg_mbox_cmd()
5176 lpfc_forced_link_speed(struct bsg_job *job) in lpfc_forced_link_speed() argument
5178 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_forced_link_speed()
5181 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_forced_link_speed()
5185 if (job->request_len < in lpfc_forced_link_speed()
5198 if (job->reply_len < sizeof(*bsg_reply) + sizeof(*forced_reply)) { in lpfc_forced_link_speed()
5213 bsg_job_done(job, bsg_reply->result, in lpfc_forced_link_speed()
5241 * @job: fc_bsg_job to handle
5246 lpfc_bsg_get_ras_config(struct bsg_job *job) in lpfc_bsg_get_ras_config() argument
5248 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_bsg_get_ras_config()
5250 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_get_ras_config()
5256 if (job->request_len < in lpfc_bsg_get_ras_config()
5289 /* complete the job back to userspace */ in lpfc_bsg_get_ras_config()
5291 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_get_ras_config()
5298 * @job: fc_bsg_job to handle
5303 lpfc_bsg_set_ras_config(struct bsg_job *job) in lpfc_bsg_set_ras_config() argument
5305 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_bsg_set_ras_config()
5309 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_set_ras_config()
5311 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_set_ras_config()
5315 if (job->request_len < in lpfc_bsg_set_ras_config()
5375 /* complete the job back to userspace */ in lpfc_bsg_set_ras_config()
5377 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_set_ras_config()
5385 * @job: fc_bsg_job to handle
5391 lpfc_bsg_get_ras_lwpd(struct bsg_job *job) in lpfc_bsg_get_ras_lwpd() argument
5393 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_bsg_get_ras_lwpd()
5398 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_get_ras_lwpd()
5406 if (job->request_len < in lpfc_bsg_get_ras_lwpd()
5437 /* complete the job back to userspace */ in lpfc_bsg_get_ras_lwpd()
5439 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_get_ras_lwpd()
5447 * @job: fc_bsg_job to handle
5452 lpfc_bsg_get_ras_fwlog(struct bsg_job *job) in lpfc_bsg_get_ras_fwlog() argument
5454 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_bsg_get_ras_fwlog()
5457 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_get_ras_fwlog()
5458 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_get_ras_fwlog()
5481 if (job->request_len < in lpfc_bsg_get_ras_fwlog()
5517 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_get_ras_fwlog()
5518 job->reply_payload.sg_cnt, in lpfc_bsg_get_ras_fwlog()
5526 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_get_ras_fwlog()
5533 lpfc_get_trunk_info(struct bsg_job *job) in lpfc_get_trunk_info() argument
5535 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_get_trunk_info()
5537 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_get_trunk_info()
5541 if (job->request_len < in lpfc_get_trunk_info()
5553 if (job->reply_len < sizeof(*bsg_reply) + sizeof(*event_reply)) { in lpfc_get_trunk_info()
5598 bsg_job_done(job, bsg_reply->result, in lpfc_get_trunk_info()
5605 lpfc_get_cgnbuf_info(struct bsg_job *job) in lpfc_get_cgnbuf_info() argument
5607 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_get_cgnbuf_info()
5609 struct fc_bsg_request *bsg_request = job->request; in lpfc_get_cgnbuf_info()
5610 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_get_cgnbuf_info()
5617 if (job->request_len < sizeof(struct fc_bsg_request) + in lpfc_get_cgnbuf_info()
5673 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_get_cgnbuf_info()
5674 job->reply_payload.sg_cnt, in lpfc_get_cgnbuf_info()
5682 bsg_job_done(job, bsg_reply->result, in lpfc_get_cgnbuf_info()
5692 * @job: fc_bsg_job to handle
5695 lpfc_bsg_hst_vendor(struct bsg_job *job) in lpfc_bsg_hst_vendor() argument
5697 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_hst_vendor()
5698 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_hst_vendor()
5704 rc = lpfc_bsg_hba_set_event(job); in lpfc_bsg_hst_vendor()
5707 rc = lpfc_bsg_hba_get_event(job); in lpfc_bsg_hst_vendor()
5710 rc = lpfc_bsg_send_mgmt_rsp(job); in lpfc_bsg_hst_vendor()
5713 rc = lpfc_bsg_diag_loopback_mode(job); in lpfc_bsg_hst_vendor()
5716 rc = lpfc_sli4_bsg_diag_mode_end(job); in lpfc_bsg_hst_vendor()
5719 rc = lpfc_bsg_diag_loopback_run(job); in lpfc_bsg_hst_vendor()
5722 rc = lpfc_sli4_bsg_link_diag_test(job); in lpfc_bsg_hst_vendor()
5725 rc = lpfc_bsg_get_dfc_rev(job); in lpfc_bsg_hst_vendor()
5728 rc = lpfc_bsg_mbox_cmd(job); in lpfc_bsg_hst_vendor()
5731 rc = lpfc_forced_link_speed(job); in lpfc_bsg_hst_vendor()
5734 rc = lpfc_bsg_get_ras_lwpd(job); in lpfc_bsg_hst_vendor()
5737 rc = lpfc_bsg_get_ras_fwlog(job); in lpfc_bsg_hst_vendor()
5740 rc = lpfc_bsg_get_ras_config(job); in lpfc_bsg_hst_vendor()
5743 rc = lpfc_bsg_set_ras_config(job); in lpfc_bsg_hst_vendor()
5746 rc = lpfc_get_trunk_info(job); in lpfc_bsg_hst_vendor()
5749 rc = lpfc_get_cgnbuf_info(job); in lpfc_bsg_hst_vendor()
5764 * @job: bsg_job to handle
5767 lpfc_bsg_request(struct bsg_job *job) in lpfc_bsg_request() argument
5769 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_request()
5770 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_request()
5777 rc = lpfc_bsg_hst_vendor(job); in lpfc_bsg_request()
5780 rc = lpfc_bsg_rport_els(job); in lpfc_bsg_request()
5783 rc = lpfc_bsg_send_mgmt_cmd(job); in lpfc_bsg_request()
5798 * @job: bsg_job that has timed out
5800 * This function just aborts the job's IOCB. The aborted IOCB will return to
5804 lpfc_bsg_timeout(struct bsg_job *job) in lpfc_bsg_timeout() argument
5806 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_timeout()
5820 /* if job's driver data is NULL, the command completed or is in the in lpfc_bsg_timeout()
5825 * command's completion handler from executing the job done callback in lpfc_bsg_timeout()
5830 dd_data = (struct bsg_job_data *)job->dd_data; in lpfc_bsg_timeout()
5833 job->dd_data = NULL; in lpfc_bsg_timeout()