void bfa_sgpg_wcancel(struct bfa_s *bfa, struct bfa_sgpg_wqe_s *wqe) { struct bfa_sgpg_mod_s *mod = BFA_SGPG_MOD(bfa); bfa_assert(bfa_q_is_on_q(&mod->sgpg_wait_q, wqe)); list_del(&wqe->qe); if (wqe->nsgpg_total != wqe->nsgpg) bfa_sgpg_mfree(bfa, &wqe->sgpg_q, wqe->nsgpg_total - wqe->nsgpg); }
void bfa_ioim_free(struct bfa_ioim_s *ioim) { struct bfa_fcpim_mod_s *fcpim = ioim->fcpim; bfa_trc_fp(ioim->bfa, ioim->iotag); bfa_assert_fp(bfa_sm_cmp_state(ioim, bfa_ioim_sm_uninit)); bfa_assert_fp(list_empty(&ioim->sgpg_q) || (ioim->nsges > BFI_SGE_INLINE)); if (ioim->nsgpgs > 0) bfa_sgpg_mfree(ioim->bfa, &ioim->sgpg_q, ioim->nsgpgs); bfa_stats(ioim->itnim, io_comps); fcpim->ios_active--; list_del(&ioim->qe); list_add_tail(&ioim->qe, &fcpim->ioim_free_q); }