d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi if (ERR_IF(!s_list_is_empty(&sp_req_mgr->pending_reqs)))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi DbgBreakIf( !s_list_is_empty(&sp_req_mgr->pending_reqs) );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_post, before lock cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_post, inside lock cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_post, adding to list cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi s_list_push_tail(&sp_req_mgr->pending_reqs, &sp_req->link);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_post, calling req_post_function, cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi sp_req->req_seq_number = ++sp_req_mgr->req_seq_number;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi lm_status = ((req_post_function)sp_req->req_post_func)(pdev, sp_req->req_post_ctx, sp_req);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_post, req_post_function, cid=%d, lm_status=%d\n", cid, lm_status);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* in iscsi we use sp_req_mgr.posted_req to store last req, */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi /* so instead of getting the seq num as param, we'll find it ourselves */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi seq_num = sp_req_mgr->posted_req->req_seq_number;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi if ( ERR_IF( seq_num != sp_req_mgr->req_seq_number ) ||
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_complete, cid=%d, seq_num=%d, sp_req_mgr->req_seq_number=%d\n", cid, seq_num, sp_req_mgr->req_seq_number);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi DbgBreakIf( seq_num != sp_req_mgr->req_seq_number );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi DbgBreakIf( (sp_req_mgr->blocked == FALSE) && (sp_req_mgr->posted_req != NULL) );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi if (!s_list_is_empty(&sp_req_mgr->pending_reqs))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_complete, popping from list cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *sp_req = (lm_sp_req_common_t *)s_list_pop_head(&sp_req_mgr->pending_reqs);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi (*sp_req)->req_seq_number = ++sp_req_mgr->req_seq_number;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_complete, no pending reqs, cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi lm_status = ((req_post_function)(*sp_req)->req_post_func)(pdev, (*sp_req)->req_post_ctx, *sp_req);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_complete, req_post_function, cid=%d, lm_status=%d\n", cid, lm_status);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_block, blocking sq req mgr, cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/* same as complete, execpt for seq number and asserts */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi if (!s_list_is_empty(&sp_req_mgr->pending_reqs))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_unblock, popping from list cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *sp_req = (lm_sp_req_common_t *)s_list_pop_head(&sp_req_mgr->pending_reqs);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi (*sp_req)->req_seq_number = ++sp_req_mgr->req_seq_number;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_unblock, no pending reqs, cid=%d\n", cid);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi lm_status = ((req_post_function)(*sp_req)->req_post_func)(pdev, (*sp_req)->req_post_ctx, *sp_req);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// DbgMessage(pdev, FATAL/*INFORM*/, "###lm_sp_req_manager_unblock, req_post_function, cid=%d, lm_status=%d\n", cid, lm_status);