Lines Matching defs:io_to_abort

4869  * @param io_to_abort The IO to abort.
4878 ocs_hw_io_abort(ocs_hw_t *hw, ocs_hw_io_t *io_to_abort, uint32_t send_abts, void *cb, void *arg)
4885 if (!hw || !io_to_abort) {
4888 hw, io_to_abort);
4899 if (ocs_ref_get_unless_zero(&io_to_abort->ref) == 0) {
4903 io_to_abort->indicator, io_to_abort->reqtag);
4909 if (io_to_abort->wq == NULL) {
4910 ocs_log_test(hw->os, "io_to_abort xri=0x%x not active on WQ\n",
4911 io_to_abort->indicator);
4912 ocs_ref_put(&io_to_abort->ref); /* ocs_ref_get(): same function */
4918 if (io_to_abort->abort_in_progress) {
4920 ocs_ref_put(&io_to_abort->ref); /* ocs_ref_get(): same function */
4923 io_to_abort->indicator, io_to_abort->reqtag);
4931 io_to_abort->abort_in_progress = 1;
4937 * - io_to_abort->wq_index != UINT32_MAX
4940 * - rxri: io_to_abort->wq_index == UINT32_MAX
4943 * - io_to_abort->index != UINT32_MAX
4945 * - io_to_abort->index == UINT32_MAX
4948 io_to_abort->abort_done = cb;
4949 io_to_abort->abort_arg = arg;
4952 id = io_to_abort->indicator;
4955 wqcb = ocs_hw_reqtag_alloc(hw, ocs_hw_wq_process_abort, io_to_abort);
4960 io_to_abort->abort_reqtag = wqcb->instance_index;
4966 if (io_to_abort->wq != NULL) {
4967 sli_queue_lock(io_to_abort->wq->queue);
4968 if (ocs_list_on_list(&io_to_abort->wqe.link)) {
4969 io_to_abort->wqe.abort_wqe_submit_needed = 1;
4970 io_to_abort->wqe.send_abts = send_abts;
4971 io_to_abort->wqe.id = id;
4972 io_to_abort->wqe.abort_reqtag = io_to_abort->abort_reqtag;
4973 sli_queue_unlock(io_to_abort->wq->queue);
4976 sli_queue_unlock(io_to_abort->wq->queue);
4979 if (sli_abort_wqe(&hw->sli, io_to_abort->wqe.wqebuf, hw->sli.config.wqe_size, atype, send_abts, id, mask,
4980 io_to_abort->abort_reqtag, SLI4_CQ_DEFAULT)) {
4982 io_to_abort->abort_reqtag = UINT32_MAX;
4988 if (io_to_abort->wq == NULL) {
4989 io_to_abort->wq = ocs_hw_queue_next_wq(hw, io_to_abort);
4990 ocs_hw_assert(io_to_abort->wq != NULL);
4996 rc = hw_wq_write(io_to_abort->wq, &io_to_abort->wqe);
5006 io_to_abort->abort_in_progress = 0;
5008 ocs_ref_put(&io_to_abort->ref); /* ocs_ref_get(): same function */