RDMA/hns: Simplify the qp state convert code

Use type map table to reduce the cyclomatic complexity.

Link: https://lore.kernel.org/r/1586938475-37049-4-git-send-email-liweihang@huawei.com
Signed-off-by: Lang Cheng <chenglang@huawei.com>
Signed-off-by: Weihang Li <liweihang@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
Lang Cheng 2020-04-15 16:14:32 +08:00 коммит произвёл Jason Gunthorpe
Родитель 375898e83d
Коммит a3de9e8381
1 изменённых файлов: 13 добавлений и 12 удалений

Просмотреть файл

@ -4539,19 +4539,20 @@ out:
return ret; return ret;
} }
static inline enum ib_qp_state to_ib_qp_st(enum hns_roce_v2_qp_state state) static int to_ib_qp_st(enum hns_roce_v2_qp_state state)
{ {
switch (state) { static const enum ib_qp_state map[] = {
case HNS_ROCE_QP_ST_RST: return IB_QPS_RESET; [HNS_ROCE_QP_ST_RST] = IB_QPS_RESET,
case HNS_ROCE_QP_ST_INIT: return IB_QPS_INIT; [HNS_ROCE_QP_ST_INIT] = IB_QPS_INIT,
case HNS_ROCE_QP_ST_RTR: return IB_QPS_RTR; [HNS_ROCE_QP_ST_RTR] = IB_QPS_RTR,
case HNS_ROCE_QP_ST_RTS: return IB_QPS_RTS; [HNS_ROCE_QP_ST_RTS] = IB_QPS_RTS,
case HNS_ROCE_QP_ST_SQ_DRAINING: [HNS_ROCE_QP_ST_SQD] = IB_QPS_SQD,
case HNS_ROCE_QP_ST_SQD: return IB_QPS_SQD; [HNS_ROCE_QP_ST_SQER] = IB_QPS_SQE,
case HNS_ROCE_QP_ST_SQER: return IB_QPS_SQE; [HNS_ROCE_QP_ST_ERR] = IB_QPS_ERR,
case HNS_ROCE_QP_ST_ERR: return IB_QPS_ERR; [HNS_ROCE_QP_ST_SQ_DRAINING] = IB_QPS_SQD
default: return -1; };
}
return (state < ARRAY_SIZE(map)) ? map[state] : -1;
} }
static int hns_roce_v2_query_qpc(struct hns_roce_dev *hr_dev, static int hns_roce_v2_query_qpc(struct hns_roce_dev *hr_dev,