Lines Matching full:job

71 	/* driver data associated with the job */
104 struct bsg_job *set_job; /* job waiting for this iocb to finish */
304 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()
340 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp()
360 lpfc_bsg_copy_data(rmp, &job->reply_payload, in lpfc_bsg_send_mgmt_cmd_cmp()
373 /* Complete the job if the job is still active */ in lpfc_bsg_send_mgmt_cmd_cmp()
375 if (job) { in lpfc_bsg_send_mgmt_cmd_cmp()
377 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_send_mgmt_cmd_cmp()
385 * @job: fc_bsg_job to handle
388 lpfc_bsg_send_mgmt_cmd(struct bsg_job *job) in lpfc_bsg_send_mgmt_cmd() argument
390 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()
394 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_send_mgmt_cmd()
446 cmp = lpfc_alloc_bsg_buffers(phba, job->request_payload.payload_len, in lpfc_bsg_send_mgmt_cmd()
452 lpfc_bsg_copy_data(cmp, &job->request_payload, in lpfc_bsg_send_mgmt_cmd()
453 job->request_payload.payload_len, 1); in lpfc_bsg_send_mgmt_cmd()
457 rmp = lpfc_alloc_bsg_buffers(phba, job->reply_payload.payload_len, 0, in lpfc_bsg_send_mgmt_cmd()
494 dd_data->set_job = job; in lpfc_bsg_send_mgmt_cmd()
497 job->dd_data = dd_data; in lpfc_bsg_send_mgmt_cmd()
549 job->dd_data = NULL; in lpfc_bsg_send_mgmt_cmd()
576 struct bsg_job *job; in lpfc_bsg_rport_els_cmp() local
591 /* Determine if job has been aborted */ in lpfc_bsg_rport_els_cmp()
593 job = dd_data->set_job; in lpfc_bsg_rport_els_cmp()
594 if (job) { in lpfc_bsg_rport_els_cmp()
595 bsg_reply = job->reply; in lpfc_bsg_rport_els_cmp()
596 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_rport_els_cmp()
597 job->dd_data = NULL; in lpfc_bsg_rport_els_cmp()
610 /* Copy the completed job data or determine the job status if job is in lpfc_bsg_rport_els_cmp()
614 if (job) { in lpfc_bsg_rport_els_cmp()
618 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_rport_els_cmp()
619 job->reply_payload.sg_cnt, in lpfc_bsg_rport_els_cmp()
643 /* Complete the job if the job is still active */ in lpfc_bsg_rport_els_cmp()
645 if (job) { in lpfc_bsg_rport_els_cmp()
647 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_rport_els_cmp()
655 * @job: fc_bsg_job to handle
658 lpfc_bsg_rport_els(struct bsg_job *job) in lpfc_bsg_rport_els() argument
660 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_rport_els()
662 struct lpfc_rport_data *rdata = fc_bsg_to_rport(job)->dd_data; in lpfc_bsg_rport_els()
664 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_rport_els()
665 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_rport_els()
682 if (job->request_payload.payload_len > FCELSSIZE) { in lpfc_bsg_rport_els()
697 cmdsize = job->request_payload.payload_len; in lpfc_bsg_rport_els()
705 * and response to ensure if the job times out and the request is freed, in lpfc_bsg_rport_els()
718 sg_copy_to_buffer(job->request_payload.sg_list, in lpfc_bsg_rport_els()
719 job->request_payload.sg_cnt, in lpfc_bsg_rport_els()
734 dd_data->set_job = job; in lpfc_bsg_rport_els()
738 job->dd_data = dd_data; in lpfc_bsg_rport_els()
786 job->dd_data = NULL; in lpfc_bsg_rport_els()
928 struct bsg_job *job = NULL; in lpfc_bsg_ct_unsol_event() local
1109 job = dd_data->set_job; in lpfc_bsg_ct_unsol_event()
1112 if (job) { in lpfc_bsg_ct_unsol_event()
1113 bsg_reply = job->reply; in lpfc_bsg_ct_unsol_event()
1117 job->dd_data = NULL; in lpfc_bsg_ct_unsol_event()
1118 /* complete the job back to userspace */ in lpfc_bsg_ct_unsol_event()
1120 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_ct_unsol_event()
1179 * @job: SET_EVENT fc_bsg_job
1182 lpfc_bsg_hba_set_event(struct bsg_job *job) in lpfc_bsg_hba_set_event() argument
1184 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_hba_set_event()
1186 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_hba_set_event()
1194 if (job->request_len < in lpfc_bsg_hba_set_event()
1249 dd_data->set_job = job; /* for unsolicited command */ in lpfc_bsg_hba_set_event()
1250 job->dd_data = dd_data; /* for fc transport timeout callback*/ in lpfc_bsg_hba_set_event()
1252 return 0; /* call job done later */ in lpfc_bsg_hba_set_event()
1256 job->dd_data = NULL; in lpfc_bsg_hba_set_event()
1262 * @job: GET_EVENT fc_bsg_job
1265 lpfc_bsg_hba_get_event(struct bsg_job *job) in lpfc_bsg_hba_get_event() argument
1267 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_hba_get_event()
1269 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_hba_get_event()
1270 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_hba_get_event()
1278 if (job->request_len < in lpfc_bsg_hba_get_event()
1316 if (evt_dat->len > job->request_payload.payload_len) { in lpfc_bsg_hba_get_event()
1317 evt_dat->len = job->request_payload.payload_len; in lpfc_bsg_hba_get_event()
1321 job->request_payload.payload_len); in lpfc_bsg_hba_get_event()
1328 sg_copy_from_buffer(job->request_payload.sg_list, in lpfc_bsg_hba_get_event()
1329 job->request_payload.sg_cnt, in lpfc_bsg_hba_get_event()
1342 job->dd_data = NULL; in lpfc_bsg_hba_get_event()
1344 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_hba_get_event()
1349 job->dd_data = NULL; in lpfc_bsg_hba_get_event()
1377 struct bsg_job *job; in lpfc_issue_ct_rsp_cmp() local
1387 /* Determine if job has been aborted */ in lpfc_issue_ct_rsp_cmp()
1389 job = dd_data->set_job; in lpfc_issue_ct_rsp_cmp()
1390 if (job) { in lpfc_issue_ct_rsp_cmp()
1391 /* Prevent timeout handling from trying to abort job */ in lpfc_issue_ct_rsp_cmp()
1392 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
1561 dd_data->set_job = job; in lpfc_issue_ct_rsp()
1569 job->dd_data = dd_data; in lpfc_issue_ct_rsp()
1594 job->dd_data = NULL; in lpfc_issue_ct_rsp()
1607 * @job: SEND_MGMT_RESP fc_bsg_job
1610 lpfc_bsg_send_mgmt_rsp(struct bsg_job *job) in lpfc_bsg_send_mgmt_rsp() argument
1612 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_send_mgmt_rsp()
1614 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_send_mgmt_rsp()
1615 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_send_mgmt_rsp()
1623 (unsigned long)job->request_payload.payload_len; in lpfc_bsg_send_mgmt_rsp()
1649 cmp = lpfc_alloc_bsg_buffers(phba, job->request_payload.payload_len, in lpfc_bsg_send_mgmt_rsp()
1655 lpfc_bsg_copy_data(cmp, &job->request_payload, in lpfc_bsg_send_mgmt_rsp()
1656 job->request_payload.payload_len, 1); in lpfc_bsg_send_mgmt_rsp()
1658 rc = lpfc_issue_ct_rsp(phba, job, tag, cmp, bmp, bpl_entries); in lpfc_bsg_send_mgmt_rsp()
1674 job->dd_data = NULL; in lpfc_bsg_send_mgmt_rsp()
1764 * @job: LPFC_BSG_VENDOR_DIAG_MODE
1775 lpfc_sli3_bsg_diag_loopback_mode(struct lpfc_hba *phba, struct bsg_job *job) in lpfc_sli3_bsg_diag_loopback_mode() argument
1777 struct fc_bsg_request *bsg_request = job->request; in lpfc_sli3_bsg_diag_loopback_mode()
1778 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_sli3_bsg_diag_loopback_mode()
1790 if (job->request_len < sizeof(struct fc_bsg_request) + in lpfc_sli3_bsg_diag_loopback_mode()
1795 job->request_len, in lpfc_sli3_bsg_diag_loopback_mode()
1882 /* complete the job back to userspace if no error */ in lpfc_sli3_bsg_diag_loopback_mode()
1884 bsg_job_done(job, bsg_reply->result, in lpfc_sli3_bsg_diag_loopback_mode()
2038 * @job: LPFC_BSG_VENDOR_DIAG_MODE
2044 lpfc_sli4_bsg_diag_loopback_mode(struct lpfc_hba *phba, struct bsg_job *job) in lpfc_sli4_bsg_diag_loopback_mode() argument
2046 struct fc_bsg_request *bsg_request = job->request; in lpfc_sli4_bsg_diag_loopback_mode()
2047 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_sli4_bsg_diag_loopback_mode()
2055 if (job->request_len < sizeof(struct fc_bsg_request) + in lpfc_sli4_bsg_diag_loopback_mode()
2060 job->request_len, in lpfc_sli4_bsg_diag_loopback_mode()
2247 /* complete the job back to userspace if no error */ in lpfc_sli4_bsg_diag_loopback_mode()
2249 bsg_job_done(job, bsg_reply->result, in lpfc_sli4_bsg_diag_loopback_mode()
2256 * @job: LPFC_BSG_VENDOR_DIAG_MODE
2262 lpfc_bsg_diag_loopback_mode(struct bsg_job *job) in lpfc_bsg_diag_loopback_mode() argument
2269 shost = fc_bsg_to_shost(job); in lpfc_bsg_diag_loopback_mode()
2280 rc = lpfc_sli3_bsg_diag_loopback_mode(phba, job); in lpfc_bsg_diag_loopback_mode()
2283 rc = lpfc_sli4_bsg_diag_loopback_mode(phba, job); in lpfc_bsg_diag_loopback_mode()
2292 * @job: LPFC_BSG_VENDOR_DIAG_MODE_END
2298 lpfc_sli4_bsg_diag_mode_end(struct bsg_job *job) in lpfc_sli4_bsg_diag_mode_end() argument
2300 struct fc_bsg_request *bsg_request = job->request; in lpfc_sli4_bsg_diag_mode_end()
2301 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_sli4_bsg_diag_mode_end()
2309 shost = fc_bsg_to_shost(job); in lpfc_sli4_bsg_diag_mode_end()
2362 /* complete the job back to userspace if no error */ in lpfc_sli4_bsg_diag_mode_end()
2364 bsg_job_done(job, bsg_reply->result, in lpfc_sli4_bsg_diag_mode_end()
2371 * @job: LPFC_BSG_VENDOR_DIAG_LINK_TEST
2377 lpfc_sli4_bsg_link_diag_test(struct bsg_job *job) in lpfc_sli4_bsg_link_diag_test() argument
2379 struct fc_bsg_request *bsg_request = job->request; in lpfc_sli4_bsg_link_diag_test()
2380 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_sli4_bsg_link_diag_test()
2393 shost = fc_bsg_to_shost(job); in lpfc_sli4_bsg_link_diag_test()
2413 if (job->request_len < sizeof(struct fc_bsg_request) + in lpfc_sli4_bsg_link_diag_test()
2418 job->request_len, in lpfc_sli4_bsg_link_diag_test()
2483 if (job->reply_len < sizeof(*bsg_reply) + sizeof(*diag_status_reply)) { in lpfc_sli4_bsg_link_diag_test()
2489 job->reply_len); in lpfc_sli4_bsg_link_diag_test()
2511 /* complete the job back to userspace if no error */ in lpfc_sli4_bsg_link_diag_test()
2513 bsg_job_done(job, bsg_reply->result, in lpfc_sli4_bsg_link_diag_test()
3064 * @job: LPFC_BSG_VENDOR_DIAG_TEST fc_bsg_job
3082 lpfc_bsg_diag_loopback_run(struct bsg_job *job) in lpfc_bsg_diag_loopback_run() argument
3084 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_diag_loopback_run()
3085 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_diag_loopback_run()
3115 if (job->request_len < in lpfc_bsg_diag_loopback_run()
3124 if (job->request_payload.payload_len != in lpfc_bsg_diag_loopback_run()
3125 job->reply_payload.payload_len) { in lpfc_bsg_diag_loopback_run()
3142 size = job->request_payload.payload_len; in lpfc_bsg_diag_loopback_run()
3174 sg_copy_to_buffer(job->request_payload.sg_list, in lpfc_bsg_diag_loopback_run()
3175 job->request_payload.sg_cnt, in lpfc_bsg_diag_loopback_run()
3339 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_diag_loopback_run()
3340 job->reply_payload.sg_cnt, in lpfc_bsg_diag_loopback_run()
3373 job->dd_data = NULL; in lpfc_bsg_diag_loopback_run()
3374 /* complete the job back to userspace if no error */ in lpfc_bsg_diag_loopback_run()
3376 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_diag_loopback_run()
3383 * @job: GET_DFC_REV fc_bsg_job
3386 lpfc_bsg_get_dfc_rev(struct bsg_job *job) in lpfc_bsg_get_dfc_rev() argument
3388 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_get_dfc_rev()
3389 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_get_dfc_rev()
3394 if (job->request_len < in lpfc_bsg_get_dfc_rev()
3406 if (job->reply_len < sizeof(*bsg_reply) + sizeof(*event_reply)) { in lpfc_bsg_get_dfc_rev()
3419 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_get_dfc_rev()
3440 struct bsg_job *job; in lpfc_bsg_issue_mbox_cmpl() local
3455 /* Determine if job has been aborted */ in lpfc_bsg_issue_mbox_cmpl()
3458 job = dd_data->set_job; in lpfc_bsg_issue_mbox_cmpl()
3459 if (job) { in lpfc_bsg_issue_mbox_cmpl()
3460 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_issue_mbox_cmpl()
3461 job->dd_data = NULL; in lpfc_bsg_issue_mbox_cmpl()
3465 /* Copy the mailbox data to the job if it is still active */ in lpfc_bsg_issue_mbox_cmpl()
3467 if (job) { in lpfc_bsg_issue_mbox_cmpl()
3468 bsg_reply = job->reply; in lpfc_bsg_issue_mbox_cmpl()
3469 size = job->reply_payload.payload_len; in lpfc_bsg_issue_mbox_cmpl()
3471 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_issue_mbox_cmpl()
3472 job->reply_payload.sg_cnt, in lpfc_bsg_issue_mbox_cmpl()
3481 /* Complete the job if the job is still active */ in lpfc_bsg_issue_mbox_cmpl()
3483 if (job) { in lpfc_bsg_issue_mbox_cmpl()
3485 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_issue_mbox_cmpl()
3503 /* return negative error values for bsg job */ in lpfc_bsg_check_cmd_access()
3610 * lpfc_bsg_issue_mbox_ext_handle_job - job handler for multi-buffer mbox cmpl
3614 * This is routine handles BSG job for mailbox commands completions with
3621 struct bsg_job *job; in lpfc_bsg_issue_mbox_ext_handle_job() local
3633 /* Determine if job has been aborted */ in lpfc_bsg_issue_mbox_ext_handle_job()
3635 job = dd_data->set_job; in lpfc_bsg_issue_mbox_ext_handle_job()
3636 if (job) { in lpfc_bsg_issue_mbox_ext_handle_job()
3637 bsg_reply = job->reply; in lpfc_bsg_issue_mbox_ext_handle_job()
3638 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_issue_mbox_ext_handle_job()
3639 job->dd_data = NULL; in lpfc_bsg_issue_mbox_ext_handle_job()
3664 /* Complete the job if the job is still active */ in lpfc_bsg_issue_mbox_ext_handle_job()
3666 if (job) { in lpfc_bsg_issue_mbox_ext_handle_job()
3667 size = job->reply_payload.payload_len; in lpfc_bsg_issue_mbox_ext_handle_job()
3669 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_issue_mbox_ext_handle_job()
3670 job->reply_payload.sg_cnt, in lpfc_bsg_issue_mbox_ext_handle_job()
3678 "(x%x/x%x) complete bsg job done, bsize:%d\n", in lpfc_bsg_issue_mbox_ext_handle_job()
3698 return job; in lpfc_bsg_issue_mbox_ext_handle_job()
3712 struct bsg_job *job; in lpfc_bsg_issue_read_mbox_ext_cmpl() local
3715 job = lpfc_bsg_issue_mbox_ext_handle_job(phba, pmboxq); in lpfc_bsg_issue_read_mbox_ext_cmpl()
3717 /* handle the BSG job with mailbox command */ in lpfc_bsg_issue_read_mbox_ext_cmpl()
3718 if (!job) in lpfc_bsg_issue_read_mbox_ext_cmpl()
3732 /* if the job is still active, call job done */ in lpfc_bsg_issue_read_mbox_ext_cmpl()
3733 if (job) { in lpfc_bsg_issue_read_mbox_ext_cmpl()
3734 bsg_reply = job->reply; in lpfc_bsg_issue_read_mbox_ext_cmpl()
3735 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_issue_read_mbox_ext_cmpl()
3752 struct bsg_job *job; in lpfc_bsg_issue_write_mbox_ext_cmpl() local
3755 job = lpfc_bsg_issue_mbox_ext_handle_job(phba, pmboxq); in lpfc_bsg_issue_write_mbox_ext_cmpl()
3757 /* handle the BSG job with the mailbox command */ in lpfc_bsg_issue_write_mbox_ext_cmpl()
3758 if (!job) in lpfc_bsg_issue_write_mbox_ext_cmpl()
3770 /* if the job is still active, call job done */ in lpfc_bsg_issue_write_mbox_ext_cmpl()
3771 if (job) { in lpfc_bsg_issue_write_mbox_ext_cmpl()
3772 bsg_reply = job->reply; in lpfc_bsg_issue_write_mbox_ext_cmpl()
3773 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_issue_write_mbox_ext_cmpl()
3876 * @job: Pointer to the job object.
3884 lpfc_bsg_sli_cfg_read_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_sli_cfg_read_cmd_ext() argument
3888 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_sli_cfg_read_cmd_ext()
4020 dd_data->set_job = job; in lpfc_bsg_sli_cfg_read_cmd_ext()
4023 job->dd_data = dd_data; in lpfc_bsg_sli_cfg_read_cmd_ext()
4065 * @job: Pointer to the job object.
4073 lpfc_bsg_sli_cfg_write_cmd_ext(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_sli_cfg_write_cmd_ext() argument
4077 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_sli_cfg_write_cmd_ext()
4078 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_sli_cfg_write_cmd_ext()
4192 dd_data->set_job = job; in lpfc_bsg_sli_cfg_write_cmd_ext()
4195 job->dd_data = dd_data; in lpfc_bsg_sli_cfg_write_cmd_ext()
4217 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_sli_cfg_write_cmd_ext()
4232 * @job: Pointer to the job object.
4240 lpfc_bsg_handle_sli_cfg_mbox(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_handle_sli_cfg_mbox() argument
4267 rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4277 rc = lpfc_bsg_sli_cfg_write_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4298 rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4329 rc = lpfc_bsg_sli_cfg_read_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4337 rc = lpfc_bsg_sli_cfg_write_cmd_ext(phba, job, in lpfc_bsg_handle_sli_cfg_mbox()
4384 * @job: Pointer to the job object.
4390 lpfc_bsg_read_ebuf_get(struct lpfc_hba *phba, struct bsg_job *job) in lpfc_bsg_read_ebuf_get() argument
4392 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_read_ebuf_get()
4431 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_read_ebuf_get()
4432 job->reply_payload.sg_cnt, in lpfc_bsg_read_ebuf_get()
4445 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_read_ebuf_get()
4454 * @job: Pointer to the job object.
4461 lpfc_bsg_write_ebuf_set(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_write_ebuf_set() argument
4464 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_write_ebuf_set()
4479 size = job->request_payload.payload_len; in lpfc_bsg_write_ebuf_set()
4480 sg_copy_to_buffer(job->request_payload.sg_list, in lpfc_bsg_write_ebuf_set()
4481 job->request_payload.sg_cnt, in lpfc_bsg_write_ebuf_set()
4540 dd_data->set_job = job; in lpfc_bsg_write_ebuf_set()
4543 job->dd_data = dd_data; in lpfc_bsg_write_ebuf_set()
4564 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_write_ebuf_set()
4580 * @job: Pointer to the job object.
4587 lpfc_bsg_handle_sli_cfg_ebuf(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_handle_sli_cfg_ebuf() argument
4605 rc = lpfc_bsg_read_ebuf_get(phba, job); in lpfc_bsg_handle_sli_cfg_ebuf()
4617 rc = lpfc_bsg_write_ebuf_set(phba, job, dmabuf); in lpfc_bsg_handle_sli_cfg_ebuf()
4625 * @job: Pointer to the job object.
4632 lpfc_bsg_handle_sli_cfg_ext(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_handle_sli_cfg_ext() argument
4635 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_handle_sli_cfg_ext()
4653 rc = lpfc_bsg_handle_sli_cfg_mbox(phba, job, dmabuf); in lpfc_bsg_handle_sli_cfg_ext()
4676 rc = lpfc_bsg_handle_sli_cfg_ebuf(phba, job, dmabuf); in lpfc_bsg_handle_sli_cfg_ext()
4699 * @job: Pointer to the job object.
4706 * being reset) and complete the job, otherwise issue the mailbox command and
4710 lpfc_bsg_issue_mbox(struct lpfc_hba *phba, struct bsg_job *job, in lpfc_bsg_issue_mbox() argument
4713 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_issue_mbox()
4714 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_issue_mbox()
4736 if (job->reply_payload.payload_len > BSG_MBOX_SIZE || in lpfc_bsg_issue_mbox()
4737 job->request_payload.payload_len > BSG_MBOX_SIZE) { in lpfc_bsg_issue_mbox()
4769 size = job->request_payload.payload_len; in lpfc_bsg_issue_mbox()
4770 sg_copy_to_buffer(job->request_payload.sg_list, in lpfc_bsg_issue_mbox()
4771 job->request_payload.sg_cnt, pmbx, size); in lpfc_bsg_issue_mbox()
4775 rc = lpfc_bsg_handle_sli_cfg_ext(phba, job, dmabuf); in lpfc_bsg_issue_mbox()
4955 dd_data->set_job = job; in lpfc_bsg_issue_mbox()
4962 job->dd_data = dd_data; in lpfc_bsg_issue_mbox()
4972 /* job finished, copy the data */ in lpfc_bsg_issue_mbox()
4975 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_issue_mbox()
4976 job->reply_payload.sg_cnt, in lpfc_bsg_issue_mbox()
4985 return 1; /* job started */ in lpfc_bsg_issue_mbox()
4988 /* common exit for error or job completed inline */ in lpfc_bsg_issue_mbox()
5000 * @job: MBOX fc_bsg_job for LPFC_BSG_VENDOR_MBOX.
5003 lpfc_bsg_mbox_cmd(struct bsg_job *job) in lpfc_bsg_mbox_cmd() argument
5005 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_mbox_cmd()
5006 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_mbox_cmd()
5007 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_mbox_cmd()
5014 if (job->request_len < in lpfc_bsg_mbox_cmd()
5020 (int)(job->request_len - in lpfc_bsg_mbox_cmd()
5029 rc = lpfc_bsg_issue_mbox(phba, job, vport); in lpfc_bsg_mbox_cmd()
5032 /* job done */ in lpfc_bsg_mbox_cmd()
5034 job->dd_data = NULL; in lpfc_bsg_mbox_cmd()
5035 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_mbox_cmd()
5038 /* job submitted, will complete later*/ in lpfc_bsg_mbox_cmd()
5043 job->dd_data = NULL; in lpfc_bsg_mbox_cmd()
5072 struct bsg_job *job; in lpfc_bsg_menlo_cmd_cmp() local
5089 /* Determine if job has been aborted */ in lpfc_bsg_menlo_cmd_cmp()
5091 job = dd_data->set_job; in lpfc_bsg_menlo_cmd_cmp()
5092 if (job) { in lpfc_bsg_menlo_cmd_cmp()
5093 bsg_reply = job->reply; in lpfc_bsg_menlo_cmd_cmp()
5094 /* Prevent timeout handling from trying to abort job */ in lpfc_bsg_menlo_cmd_cmp()
5095 job->dd_data = NULL; in lpfc_bsg_menlo_cmd_cmp()
5099 /* Copy the job data or set the failing status for the job */ in lpfc_bsg_menlo_cmd_cmp()
5101 if (job) { in lpfc_bsg_menlo_cmd_cmp()
5129 lpfc_bsg_copy_data(rmp, &job->reply_payload, in lpfc_bsg_menlo_cmd_cmp()
5142 /* Complete the job if active */ in lpfc_bsg_menlo_cmd_cmp()
5144 if (job) { in lpfc_bsg_menlo_cmd_cmp()
5146 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_menlo_cmd_cmp()
5155 * @job: fc_bsg_job to handle
5163 lpfc_menlo_cmd(struct bsg_job *job) in lpfc_menlo_cmd() argument
5165 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_menlo_cmd()
5166 struct fc_bsg_request *bsg_request = job->request; in lpfc_menlo_cmd()
5167 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_menlo_cmd()
5182 if (job->request_len < in lpfc_menlo_cmd()
5192 if (job->reply_len < sizeof(*bsg_reply) + in lpfc_menlo_cmd()
5237 cmp = lpfc_alloc_bsg_buffers(phba, job->request_payload.payload_len, in lpfc_menlo_cmd()
5243 lpfc_bsg_copy_data(cmp, &job->request_payload, in lpfc_menlo_cmd()
5244 job->request_payload.payload_len, 1); in lpfc_menlo_cmd()
5248 rmp = lpfc_alloc_bsg_buffers(phba, job->reply_payload.payload_len, 0, in lpfc_menlo_cmd()
5297 dd_data->set_job = job; in lpfc_menlo_cmd()
5300 job->dd_data = dd_data; in lpfc_menlo_cmd()
5322 job->dd_data = NULL; in lpfc_menlo_cmd()
5327 lpfc_forced_link_speed(struct bsg_job *job) in lpfc_forced_link_speed() argument
5329 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_forced_link_speed()
5332 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_forced_link_speed()
5336 if (job->request_len < in lpfc_forced_link_speed()
5349 if (job->reply_len < sizeof(*bsg_reply) + sizeof(*forced_reply)) { in lpfc_forced_link_speed()
5363 bsg_job_done(job, bsg_reply->result, in lpfc_forced_link_speed()
5391 * @job: fc_bsg_job to handle
5396 lpfc_bsg_get_ras_config(struct bsg_job *job) in lpfc_bsg_get_ras_config() argument
5398 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_bsg_get_ras_config()
5400 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_get_ras_config()
5406 if (job->request_len < in lpfc_bsg_get_ras_config()
5439 /* complete the job back to userspace */ in lpfc_bsg_get_ras_config()
5441 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_get_ras_config()
5448 * @job: fc_bsg_job to handle
5453 lpfc_bsg_set_ras_config(struct bsg_job *job) in lpfc_bsg_set_ras_config() argument
5455 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_bsg_set_ras_config()
5459 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_set_ras_config()
5461 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_set_ras_config()
5465 if (job->request_len < in lpfc_bsg_set_ras_config()
5525 /* complete the job back to userspace */ in lpfc_bsg_set_ras_config()
5527 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_set_ras_config()
5535 * @job: fc_bsg_job to handle
5541 lpfc_bsg_get_ras_lwpd(struct bsg_job *job) in lpfc_bsg_get_ras_lwpd() argument
5543 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_bsg_get_ras_lwpd()
5548 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_get_ras_lwpd()
5556 if (job->request_len < in lpfc_bsg_get_ras_lwpd()
5587 /* complete the job back to userspace */ in lpfc_bsg_get_ras_lwpd()
5589 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_get_ras_lwpd()
5597 * @job: fc_bsg_job to handle
5602 lpfc_bsg_get_ras_fwlog(struct bsg_job *job) in lpfc_bsg_get_ras_fwlog() argument
5604 struct Scsi_Host *shost = fc_bsg_to_shost(job); in lpfc_bsg_get_ras_fwlog()
5607 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_get_ras_fwlog()
5608 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_get_ras_fwlog()
5631 if (job->request_len < in lpfc_bsg_get_ras_fwlog()
5667 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_bsg_get_ras_fwlog()
5668 job->reply_payload.sg_cnt, in lpfc_bsg_get_ras_fwlog()
5676 bsg_job_done(job, bsg_reply->result, in lpfc_bsg_get_ras_fwlog()
5683 lpfc_get_trunk_info(struct bsg_job *job) in lpfc_get_trunk_info() argument
5685 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_get_trunk_info()
5687 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_get_trunk_info()
5691 if (job->request_len < in lpfc_get_trunk_info()
5703 if (job->reply_len < sizeof(*bsg_reply) + sizeof(*event_reply)) { in lpfc_get_trunk_info()
5748 bsg_job_done(job, bsg_reply->result, in lpfc_get_trunk_info()
5755 lpfc_get_cgnbuf_info(struct bsg_job *job) in lpfc_get_cgnbuf_info() argument
5757 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_get_cgnbuf_info()
5759 struct fc_bsg_request *bsg_request = job->request; in lpfc_get_cgnbuf_info()
5760 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_get_cgnbuf_info()
5767 if (job->request_len < sizeof(struct fc_bsg_request) + in lpfc_get_cgnbuf_info()
5823 sg_copy_from_buffer(job->reply_payload.sg_list, in lpfc_get_cgnbuf_info()
5824 job->reply_payload.sg_cnt, in lpfc_get_cgnbuf_info()
5832 bsg_job_done(job, bsg_reply->result, in lpfc_get_cgnbuf_info()
5842 * @job: fc_bsg_job to handle
5845 lpfc_bsg_hst_vendor(struct bsg_job *job) in lpfc_bsg_hst_vendor() argument
5847 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_hst_vendor()
5848 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_hst_vendor()
5854 rc = lpfc_bsg_hba_set_event(job); in lpfc_bsg_hst_vendor()
5857 rc = lpfc_bsg_hba_get_event(job); in lpfc_bsg_hst_vendor()
5860 rc = lpfc_bsg_send_mgmt_rsp(job); in lpfc_bsg_hst_vendor()
5863 rc = lpfc_bsg_diag_loopback_mode(job); in lpfc_bsg_hst_vendor()
5866 rc = lpfc_sli4_bsg_diag_mode_end(job); in lpfc_bsg_hst_vendor()
5869 rc = lpfc_bsg_diag_loopback_run(job); in lpfc_bsg_hst_vendor()
5872 rc = lpfc_sli4_bsg_link_diag_test(job); in lpfc_bsg_hst_vendor()
5875 rc = lpfc_bsg_get_dfc_rev(job); in lpfc_bsg_hst_vendor()
5878 rc = lpfc_bsg_mbox_cmd(job); in lpfc_bsg_hst_vendor()
5882 rc = lpfc_menlo_cmd(job); in lpfc_bsg_hst_vendor()
5885 rc = lpfc_forced_link_speed(job); in lpfc_bsg_hst_vendor()
5888 rc = lpfc_bsg_get_ras_lwpd(job); in lpfc_bsg_hst_vendor()
5891 rc = lpfc_bsg_get_ras_fwlog(job); in lpfc_bsg_hst_vendor()
5894 rc = lpfc_bsg_get_ras_config(job); in lpfc_bsg_hst_vendor()
5897 rc = lpfc_bsg_set_ras_config(job); in lpfc_bsg_hst_vendor()
5900 rc = lpfc_get_trunk_info(job); in lpfc_bsg_hst_vendor()
5903 rc = lpfc_get_cgnbuf_info(job); in lpfc_bsg_hst_vendor()
5918 * @job: bsg_job to handle
5921 lpfc_bsg_request(struct bsg_job *job) in lpfc_bsg_request() argument
5923 struct fc_bsg_request *bsg_request = job->request; in lpfc_bsg_request()
5924 struct fc_bsg_reply *bsg_reply = job->reply; in lpfc_bsg_request()
5931 rc = lpfc_bsg_hst_vendor(job); in lpfc_bsg_request()
5934 rc = lpfc_bsg_rport_els(job); in lpfc_bsg_request()
5937 rc = lpfc_bsg_send_mgmt_cmd(job); in lpfc_bsg_request()
5952 * @job: bsg_job that has timed out
5954 * This function just aborts the job's IOCB. The aborted IOCB will return to
5958 lpfc_bsg_timeout(struct bsg_job *job) in lpfc_bsg_timeout() argument
5960 struct lpfc_vport *vport = shost_priv(fc_bsg_to_shost(job)); in lpfc_bsg_timeout()
5974 /* if job's driver data is NULL, the command completed or is in the in lpfc_bsg_timeout()
5979 * command's completion handler from executing the job done callback in lpfc_bsg_timeout()
5984 dd_data = (struct bsg_job_data *)job->dd_data; in lpfc_bsg_timeout()
5987 job->dd_data = NULL; in lpfc_bsg_timeout()