On Fri, Nov 23, 2018 at 08:10:04PM +0200, Leon Romanovsky wrote: > On Fri, Nov 23, 2018 at 04:26:36PM +0800, Lijun Ou wrote: > > This patch refactors the code of implementing qp state transition. > > > > Signed-off-by: Lijun Ou <oulijun@xxxxxxxxxx> > > drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 16 +--------------- > > drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 19 +++++++++++++++++++ > > 2 files changed, 20 insertions(+), 15 deletions(-) > > "Refactor the code" means that it improves something, like line count or readability. > Sometimes, it is needed to remove code duplication, but in your case, you simply moved a > couple of lines from one place to another. > > Thanks > > > > > diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c > > index 3528f2f..66d66e9 100644 > > +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c > > @@ -3846,21 +3846,7 @@ static int hns_roce_v2_modify_qp(struct ib_qp *ibqp, > > qpc_mask); > > if (ret) > > goto out; > > - } else if ((cur_state == IB_QPS_RTS && new_state == IB_QPS_RTS) || > > - (cur_state == IB_QPS_SQE && new_state == IB_QPS_RTS) || > > - (cur_state == IB_QPS_RTS && new_state == IB_QPS_SQD) || > > - (cur_state == IB_QPS_SQD && new_state == IB_QPS_SQD) || > > - (cur_state == IB_QPS_SQD && new_state == IB_QPS_RTS) || > > - (cur_state == IB_QPS_INIT && new_state == IB_QPS_RESET) || > > - (cur_state == IB_QPS_RTR && new_state == IB_QPS_RESET) || > > - (cur_state == IB_QPS_RTS && new_state == IB_QPS_RESET) || > > - (cur_state == IB_QPS_ERR && new_state == IB_QPS_RESET) || > > - (cur_state == IB_QPS_INIT && new_state == IB_QPS_ERR) || > > - (cur_state == IB_QPS_RTR && new_state == IB_QPS_ERR) || > > - (cur_state == IB_QPS_RTS && new_state == IB_QPS_ERR) || > > - (cur_state == IB_QPS_SQD && new_state == IB_QPS_ERR) || > > - (cur_state == IB_QPS_SQE && new_state == IB_QPS_ERR) || > > - (cur_state == IB_QPS_ERR && new_state == IB_QPS_ERR)) { > > + } else if (V2_QP_SUPPORT_STATE(cur_state, new_state)) { > > /* Nothing */ > > ; > > } else { > > diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.h b/drivers/infiniband/hw/hns/hns_roce_hw_v2.h > > index e6e3d8fb..7b308ac 100644 > > +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.h > > @@ -133,6 +133,25 @@ > > (step_idx == 1 && hop_num == 1) || \ > > (step_idx == 2 && hop_num == 2)) > > > > +#define V2_QP_SUPPORT_STATE(cur_state, new_state) \ > > + ((cur_state == IB_QPS_RTS && new_state == IB_QPS_RTS) || \ > > + (cur_state == IB_QPS_SQE && new_state == IB_QPS_RTS) || \ > > + (cur_state == IB_QPS_RTS && new_state == IB_QPS_SQD) || \ > > + (cur_state == IB_QPS_SQD && new_state == IB_QPS_SQD) || \ > > + (cur_state == IB_QPS_SQD && new_state == IB_QPS_RTS) || \ > > + (cur_state == IB_QPS_INIT && new_state == IB_QPS_RESET) || \ > > + (cur_state == IB_QPS_RTR && new_state == IB_QPS_RESET) || \ > > + (cur_state == IB_QPS_RTS && new_state == IB_QPS_RESET) || \ > > + (cur_state == IB_QPS_ERR && new_state == IB_QPS_RESET) || \ > > + (cur_state == IB_QPS_SQD && new_state == IB_QPS_RESET) || \ > > + (cur_state == IB_QPS_SQE && new_state == IB_QPS_RESET) || \ > > + (cur_state == IB_QPS_INIT && new_state == IB_QPS_ERR) || \ > > + (cur_state == IB_QPS_RTR && new_state == IB_QPS_ERR) || \ > > + (cur_state == IB_QPS_RTS && new_state == IB_QPS_ERR) || \ > > + (cur_state == IB_QPS_SQD && new_state == IB_QPS_ERR) || \ > > + (cur_state == IB_QPS_SQE && new_state == IB_QPS_ERR) || \ > > + (cur_state == IB_QPS_ERR && new_state == IB_QPS_ERR)) And please don't use macros if a static inline function will do, and don't use marcos wrongly by forgetting to enclose parameters with () Jason