RDMA/verbs: Simplify modify QP check
authorLeon Romanovsky <leonro@mellanox.com>
Sun, 11 Mar 2018 11:51:35 +0000 (13:51 +0200)
committerDoug Ledford <dledford@redhat.com>
Wed, 14 Mar 2018 19:34:25 +0000 (15:34 -0400)
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: Leon Romanovsky <leonro@mellanox.com>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/verbs.c
include/rdma/ib_verbs.h

index 873b7aa9e8ddd6865728b7317bf6391577499849..f7de886da4306ea27a373739e6cff300cc24830b 100644 (file)
@@ -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,
-                      enum ib_qp_type type, enum ib_qp_attr_mask mask,
-                      enum rdma_link_layer ll)
+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 rdma_link_layer ll)
 {
        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  &&
            cur_state != IB_QPS_RTR && cur_state != IB_QPS_RTS &&
            cur_state != IB_QPS_SQD && cur_state != IB_QPS_SQE)
-               return 0;
+               return false;
 
        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];
        opt_param = qp_state_table[cur_state][next_state].opt_param[type];
 
        if ((mask & req_param) != req_param)
-               return 0;
+               return false;
 
        if (mask & ~(req_param | opt_param | IB_QP_STATE))
-               return 0;
+               return false;
 
-       return 1;
+       return true;
 }
 EXPORT_SYMBOL(ib_modify_qp_is_ok);
 
index 7df3274818f99544c145f60bccef20ee57d19be7..5eb10c2470f0c721edfa072823a6242d5795d531 100644 (file)
@@ -2480,9 +2480,9 @@ static inline bool ib_is_udata_cleared(struct ib_udata *udata,
  * transition from cur_state to next_state is allowed by the IB spec,
  * 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,
-                      enum ib_qp_type type, enum ib_qp_attr_mask mask,
-                      enum rdma_link_layer ll);
+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 rdma_link_layer ll);
 
 void ib_register_event_handler(struct ib_event_handler *event_handler);
 void ib_unregister_event_handler(struct ib_event_handler *event_handler);