diff --git a/prov/cxi/include/cxip.h b/prov/cxi/include/cxip.h index 06b582a0eab..04474debc3a 100644 --- a/prov/cxi/include/cxip.h +++ b/prov/cxi/include/cxip.h @@ -2772,6 +2772,19 @@ void cxip_cmdq_free(struct cxip_cmdq *cmdq); int cxip_cmdq_emit_c_state(struct cxip_cmdq *cmdq, const struct c_cstate_cmd *cmd); +static inline bool cxip_cmdq_empty(struct cxip_cmdq *cmdq) +{ + return cxi_cq_empty(cmdq->dev_cmdq); +} + +static inline bool cxip_cmdq_match(struct cxip_cmdq *cmdq, uint16_t vni, + enum cxi_traffic_class tc, + enum cxi_traffic_class_type tc_type) +{ + return (cmdq->cur_cp->vni == vni) && (cmdq->cur_cp->tc == tc) && + (cmdq->cur_cp->tc_type == tc_type); +} + int cxip_evtq_init(struct cxip_evtq *evtq, struct cxip_cq *cq, size_t num_events, size_t num_fc_events); void cxip_evtq_fini(struct cxip_evtq *eq); diff --git a/prov/cxi/src/cxip_cmdq.c b/prov/cxi/src/cxip_cmdq.c index d8f9ed0f0de..020f135467c 100644 --- a/prov/cxi/src/cxip_cmdq.c +++ b/prov/cxi/src/cxip_cmdq.c @@ -159,8 +159,7 @@ int cxip_cmdq_cp_set(struct cxip_cmdq *cmdq, uint16_t vni, struct cxi_cp *cp; int ret; - if (cmdq->cur_cp->vni == vni && cmdq->cur_cp->tc == tc && - cmdq->cur_cp->tc_type == tc_type) + if (cxip_cmdq_match(cmdq, vni, tc, tc_type)) return FI_SUCCESS; ret = cxip_cp_get(cmdq->lni, vni, tc, tc_type, &cp);