Commit 19b1f540 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Doug Ledford

RDMA/verbs: Simplify modify QP check

All callers to ib_modify_qp_is_ok() provides enum ib_qp_state
makes the checks of out-of-scope redundant. Let's remove them
together with updating function signature to return boolean result.
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Reviewed-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent fbf1795c
...@@ -1263,34 +1263,30 @@ static const struct { ...@@ -1263,34 +1263,30 @@ static const struct {
} }
}; };
int ib_modify_qp_is_ok(enum ib_qp_state cur_state, enum ib_qp_state next_state, bool ib_modify_qp_is_ok(enum ib_qp_state cur_state, enum ib_qp_state next_state,
enum ib_qp_type type, enum ib_qp_attr_mask mask, enum ib_qp_type type, enum ib_qp_attr_mask mask,
enum rdma_link_layer ll) enum rdma_link_layer ll)
{ {
enum ib_qp_attr_mask req_param, opt_param; enum ib_qp_attr_mask req_param, opt_param;
if (cur_state < 0 || cur_state > IB_QPS_ERR ||
next_state < 0 || next_state > IB_QPS_ERR)
return 0;
if (mask & IB_QP_CUR_STATE && if (mask & IB_QP_CUR_STATE &&
cur_state != IB_QPS_RTR && cur_state != IB_QPS_RTS && cur_state != IB_QPS_RTR && cur_state != IB_QPS_RTS &&
cur_state != IB_QPS_SQD && cur_state != IB_QPS_SQE) cur_state != IB_QPS_SQD && cur_state != IB_QPS_SQE)
return 0; return false;
if (!qp_state_table[cur_state][next_state].valid) if (!qp_state_table[cur_state][next_state].valid)
return 0; return false;
req_param = qp_state_table[cur_state][next_state].req_param[type]; req_param = qp_state_table[cur_state][next_state].req_param[type];
opt_param = qp_state_table[cur_state][next_state].opt_param[type]; opt_param = qp_state_table[cur_state][next_state].opt_param[type];
if ((mask & req_param) != req_param) if ((mask & req_param) != req_param)
return 0; return false;
if (mask & ~(req_param | opt_param | IB_QP_STATE)) if (mask & ~(req_param | opt_param | IB_QP_STATE))
return 0; return false;
return 1; return true;
} }
EXPORT_SYMBOL(ib_modify_qp_is_ok); EXPORT_SYMBOL(ib_modify_qp_is_ok);
......
...@@ -2480,7 +2480,7 @@ static inline bool ib_is_udata_cleared(struct ib_udata *udata, ...@@ -2480,7 +2480,7 @@ static inline bool ib_is_udata_cleared(struct ib_udata *udata,
* transition from cur_state to next_state is allowed by the IB spec, * transition from cur_state to next_state is allowed by the IB spec,
* and that the attribute mask supplied is allowed for the transition. * and that the attribute mask supplied is allowed for the transition.
*/ */
int ib_modify_qp_is_ok(enum ib_qp_state cur_state, enum ib_qp_state next_state, bool ib_modify_qp_is_ok(enum ib_qp_state cur_state, enum ib_qp_state next_state,
enum ib_qp_type type, enum ib_qp_attr_mask mask, enum ib_qp_type type, enum ib_qp_attr_mask mask,
enum rdma_link_layer ll); enum rdma_link_layer ll);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment