99#include "hns_roce_device.h"
1010#include "hns_roce_hw_v2.h"
1111
12- #define MAX_ENTRY_NUM 256
13-
1412int hns_roce_fill_res_cq_entry (struct sk_buff * msg , struct ib_cq * ib_cq )
1513{
1614 struct hns_roce_cq * hr_cq = to_hr_cq (ib_cq );
@@ -47,8 +45,6 @@ int hns_roce_fill_res_cq_entry_raw(struct sk_buff *msg, struct ib_cq *ib_cq)
4745 struct hns_roce_dev * hr_dev = to_hr_dev (ib_cq -> device );
4846 struct hns_roce_cq * hr_cq = to_hr_cq (ib_cq );
4947 struct hns_roce_v2_cq_context context ;
50- u32 data [MAX_ENTRY_NUM ] = {};
51- int offset = 0 ;
5248 int ret ;
5349
5450 if (!hr_dev -> hw -> query_cqc )
@@ -58,23 +54,7 @@ int hns_roce_fill_res_cq_entry_raw(struct sk_buff *msg, struct ib_cq *ib_cq)
5854 if (ret )
5955 return - EINVAL ;
6056
61- data [offset ++ ] = hr_reg_read (& context , CQC_CQ_ST );
62- data [offset ++ ] = hr_reg_read (& context , CQC_SHIFT );
63- data [offset ++ ] = hr_reg_read (& context , CQC_CQE_SIZE );
64- data [offset ++ ] = hr_reg_read (& context , CQC_CQE_CNT );
65- data [offset ++ ] = hr_reg_read (& context , CQC_CQ_PRODUCER_IDX );
66- data [offset ++ ] = hr_reg_read (& context , CQC_CQ_CONSUMER_IDX );
67- data [offset ++ ] = hr_reg_read (& context , CQC_DB_RECORD_EN );
68- data [offset ++ ] = hr_reg_read (& context , CQC_ARM_ST );
69- data [offset ++ ] = hr_reg_read (& context , CQC_CMD_SN );
70- data [offset ++ ] = hr_reg_read (& context , CQC_CEQN );
71- data [offset ++ ] = hr_reg_read (& context , CQC_CQ_MAX_CNT );
72- data [offset ++ ] = hr_reg_read (& context , CQC_CQ_PERIOD );
73- data [offset ++ ] = hr_reg_read (& context , CQC_CQE_HOP_NUM );
74- data [offset ++ ] = hr_reg_read (& context , CQC_CQE_BAR_PG_SZ );
75- data [offset ++ ] = hr_reg_read (& context , CQC_CQE_BUF_PG_SZ );
76-
77- ret = nla_put (msg , RDMA_NLDEV_ATTR_RES_RAW , offset * sizeof (u32 ), data );
57+ ret = nla_put (msg , RDMA_NLDEV_ATTR_RES_RAW , sizeof (context ), & context );
7858
7959 return ret ;
8060}
@@ -118,8 +98,6 @@ int hns_roce_fill_res_qp_entry_raw(struct sk_buff *msg, struct ib_qp *ib_qp)
11898 struct hns_roce_dev * hr_dev = to_hr_dev (ib_qp -> device );
11999 struct hns_roce_qp * hr_qp = to_hr_qp (ib_qp );
120100 struct hns_roce_v2_qp_context context ;
121- u32 data [MAX_ENTRY_NUM ] = {};
122- int offset = 0 ;
123101 int ret ;
124102
125103 if (!hr_dev -> hw -> query_qpc )
@@ -129,42 +107,7 @@ int hns_roce_fill_res_qp_entry_raw(struct sk_buff *msg, struct ib_qp *ib_qp)
129107 if (ret )
130108 return - EINVAL ;
131109
132- data [offset ++ ] = hr_reg_read (& context , QPC_QP_ST );
133- data [offset ++ ] = hr_reg_read (& context , QPC_ERR_TYPE );
134- data [offset ++ ] = hr_reg_read (& context , QPC_CHECK_FLG );
135- data [offset ++ ] = hr_reg_read (& context , QPC_SRQ_EN );
136- data [offset ++ ] = hr_reg_read (& context , QPC_SRQN );
137- data [offset ++ ] = hr_reg_read (& context , QPC_QKEY_XRCD );
138- data [offset ++ ] = hr_reg_read (& context , QPC_TX_CQN );
139- data [offset ++ ] = hr_reg_read (& context , QPC_RX_CQN );
140- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_PRODUCER_IDX );
141- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_CONSUMER_IDX );
142- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_RECORD_EN );
143- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_PRODUCER_IDX );
144- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_CONSUMER_IDX );
145- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_SHIFT );
146- data [offset ++ ] = hr_reg_read (& context , QPC_RQWS );
147- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_SHIFT );
148- data [offset ++ ] = hr_reg_read (& context , QPC_SGE_SHIFT );
149- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_HOP_NUM );
150- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_HOP_NUM );
151- data [offset ++ ] = hr_reg_read (& context , QPC_SGE_HOP_NUM );
152- data [offset ++ ] = hr_reg_read (& context , QPC_WQE_SGE_BA_PG_SZ );
153- data [offset ++ ] = hr_reg_read (& context , QPC_WQE_SGE_BUF_PG_SZ );
154- data [offset ++ ] = hr_reg_read (& context , QPC_RETRY_NUM_INIT );
155- data [offset ++ ] = hr_reg_read (& context , QPC_RETRY_CNT );
156- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_CUR_PSN );
157- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_MAX_PSN );
158- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_FLUSH_IDX );
159- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_MAX_IDX );
160- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_TX_ERR );
161- data [offset ++ ] = hr_reg_read (& context , QPC_SQ_RX_ERR );
162- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_RX_ERR );
163- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_TX_ERR );
164- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_CQE_IDX );
165- data [offset ++ ] = hr_reg_read (& context , QPC_RQ_RTY_TX_ERR );
166-
167- ret = nla_put (msg , RDMA_NLDEV_ATTR_RES_RAW , offset * sizeof (u32 ), data );
110+ ret = nla_put (msg , RDMA_NLDEV_ATTR_RES_RAW , sizeof (context ), & context );
168111
169112 return ret ;
170113}
@@ -204,8 +147,6 @@ int hns_roce_fill_res_mr_entry_raw(struct sk_buff *msg, struct ib_mr *ib_mr)
204147 struct hns_roce_dev * hr_dev = to_hr_dev (ib_mr -> device );
205148 struct hns_roce_mr * hr_mr = to_hr_mr (ib_mr );
206149 struct hns_roce_v2_mpt_entry context ;
207- u32 data [MAX_ENTRY_NUM ] = {};
208- int offset = 0 ;
209150 int ret ;
210151
211152 if (!hr_dev -> hw -> query_mpt )
@@ -215,17 +156,7 @@ int hns_roce_fill_res_mr_entry_raw(struct sk_buff *msg, struct ib_mr *ib_mr)
215156 if (ret )
216157 return - EINVAL ;
217158
218- data [offset ++ ] = hr_reg_read (& context , MPT_ST );
219- data [offset ++ ] = hr_reg_read (& context , MPT_PD );
220- data [offset ++ ] = hr_reg_read (& context , MPT_LKEY );
221- data [offset ++ ] = hr_reg_read (& context , MPT_LEN_L );
222- data [offset ++ ] = hr_reg_read (& context , MPT_LEN_H );
223- data [offset ++ ] = hr_reg_read (& context , MPT_PBL_SIZE );
224- data [offset ++ ] = hr_reg_read (& context , MPT_PBL_HOP_NUM );
225- data [offset ++ ] = hr_reg_read (& context , MPT_PBL_BA_PG_SZ );
226- data [offset ++ ] = hr_reg_read (& context , MPT_PBL_BUF_PG_SZ );
227-
228- ret = nla_put (msg , RDMA_NLDEV_ATTR_RES_RAW , offset * sizeof (u32 ), data );
159+ ret = nla_put (msg , RDMA_NLDEV_ATTR_RES_RAW , sizeof (context ), & context );
229160
230161 return ret ;
231162}
0 commit comments