* [saeed:net-next-mlx5 68/77] drivers/net/ethernet/mellanox/mlx5/core/en/trap.c:177 mlx5e_open_trap_rq() warn: inconsistent indenting
@ 2020-12-27 16:10 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-12-27 16:10 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 7961 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git net-next-mlx5
head: efb97448db0214e087358988a953fe3bdc065e58
commit: 1cd0121b3dbd6b1a18341f1e1dd39aff96507985 [68/77] net/mlx5e: Add trap entity to ETH driver
config: i386-randconfig-m021-20201227 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
smatch warnings:
drivers/net/ethernet/mellanox/mlx5/core/en/trap.c:177 mlx5e_open_trap_rq() warn: inconsistent indenting
drivers/net/ethernet/mellanox/mlx5/core/en/trap.c:362 mlx5e_handle_action_trap() error: we previously assumed 'priv->en_trap' could be null (see line 351)
vim +177 drivers/net/ethernet/mellanox/mlx5/core/en/trap.c
148
149 static int mlx5e_open_trap_rq(struct mlx5e_priv *priv, struct napi_struct *napi,
150 struct mlx5e_rq_stats *stats, struct mlx5e_params *params,
151 struct mlx5e_rq_param *rq_param,
152 struct mlx5e_ch_stats *ch_stats,
153 struct mlx5e_rq *rq)
154 {
155 struct mlx5_core_dev *mdev = priv->mdev;
156 struct mlx5e_create_cq_param ccp = {};
157 struct dim_cq_moder trap_moder = {};
158 struct mlx5e_cq *cq = &rq->cq;
159 int err;
160
161 ccp.node = dev_to_node(mdev->device);
162 ccp.ch_stats = ch_stats;
163 ccp.napi = napi;
164 ccp.ix = 0;
165 err = mlx5e_open_cq(priv, trap_moder, &rq_param->cqp, &ccp, cq);
166 if (err)
167 return err;
168
169 err = mlx5e_alloc_trap_rq(priv, rq_param, stats, params, ch_stats, rq);
170 if (err)
171 goto err_destroy_cq;
172
173 err = mlx5e_create_rq(rq, rq_param);
174 if (err)
175 goto err_free_rq;
176
> 177 err = mlx5e_modify_rq_state(rq, MLX5_RQC_STATE_RST, MLX5_RQC_STATE_RDY);
178 if (err)
179 goto err_destroy_rq;
180
181 return 0;
182
183 err_destroy_rq:
184 mlx5e_destroy_rq(rq);
185 mlx5e_free_rx_descs(rq);
186 err_free_rq:
187 mlx5e_free_trap_rq(rq);
188 err_destroy_cq:
189 mlx5e_close_cq(cq);
190
191 return err;
192 }
193
194 static void mlx5e_close_trap_rq(struct mlx5e_rq *rq)
195 {
196 mlx5e_destroy_rq(rq);
197 mlx5e_free_rx_descs(rq);
198 mlx5e_free_trap_rq(rq);
199 mlx5e_close_cq(&rq->cq);
200 }
201
202 static int mlx5e_create_trap_direct_rq_tir(struct mlx5_core_dev *mdev, struct mlx5e_tir *tir,
203 u32 rqn)
204 {
205 void *tirc;
206 int inlen;
207 u32 *in;
208 int err;
209
210 inlen = MLX5_ST_SZ_BYTES(create_tir_in);
211 in = kvzalloc(inlen, GFP_KERNEL);
212 if (!in)
213 return -ENOMEM;
214
215 tirc = MLX5_ADDR_OF(create_tir_in, in, ctx);
216 MLX5_SET(tirc, tirc, transport_domain, mdev->mlx5e_res.td.tdn);
217 MLX5_SET(tirc, tirc, rx_hash_fn, MLX5_RX_HASH_FN_NONE);
218 MLX5_SET(tirc, tirc, disp_type, MLX5_TIRC_DISP_TYPE_DIRECT);
219 MLX5_SET(tirc, tirc, inline_rqn, rqn);
220 err = mlx5e_create_tir(mdev, tir, in);
221 kvfree(in);
222
223 return err;
224 }
225
226 static void mlx5e_destroy_trap_direct_rq_tir(struct mlx5_core_dev *mdev, struct mlx5e_tir *tir)
227 {
228 mlx5e_destroy_tir(mdev, tir);
229 }
230
231 static void mlx5e_activate_trap_rq(struct mlx5e_rq *rq)
232 {
233 set_bit(MLX5E_RQ_STATE_ENABLED, &rq->state);
234 }
235
236 static void mlx5e_deactivate_trap_rq(struct mlx5e_rq *rq)
237 {
238 clear_bit(MLX5E_RQ_STATE_ENABLED, &rq->state);
239 }
240
241 static void mlx5e_build_trap_params(struct mlx5e_priv *priv, struct mlx5e_trap *t)
242 {
243 struct mlx5e_params *params = &t->params;
244
245 params->rq_wq_type = MLX5_WQ_TYPE_CYCLIC;
246 mlx5e_init_rq_type_params(priv->mdev, params);
247 params->sw_mtu = priv->netdev->max_mtu;
248 mlx5e_build_rq_param(priv, params, NULL, &t->rq_param);
249 }
250
251 static int mlx5e_open_trap(struct mlx5e_priv *priv)
252 {
253 int cpu = cpumask_first(mlx5_comp_irq_get_affinity_mask(priv->mdev, 0));
254 struct net_device *netdev = priv->netdev;
255 struct mlx5e_trap *t;
256 int err;
257
258 t = kvzalloc_node(sizeof(*t), GFP_KERNEL, cpu_to_node(cpu));
259 if (!t)
260 return -ENOMEM;
261
262 mlx5e_build_trap_params(priv, t);
263
264 t->priv = priv;
265 t->mdev = priv->mdev;
266 t->tstamp = &priv->tstamp;
267 t->pdev = mlx5_core_dma_dev(priv->mdev);
268 t->netdev = priv->netdev;
269 t->mkey_be = cpu_to_be32(priv->mdev->mlx5e_res.mkey.key);
270 t->stats = &priv->trap_stats.ch;
271
272 netif_napi_add(netdev, &t->napi, mlx5e_trap_napi_poll, 64);
273
274 err = mlx5e_open_trap_rq(priv, &t->napi,
275 &priv->trap_stats.rq,
276 &t->params, &t->rq_param,
277 &priv->trap_stats.ch,
278 &t->rq);
279 if (unlikely(err))
280 goto err_napi_del;
281
282 err = mlx5e_create_trap_direct_rq_tir(t->mdev, &t->tir, t->rq.rqn);
283 if (err)
284 goto err_close_trap_rq;
285
286 priv->en_trap = t;
287 return 0;
288
289 err_close_trap_rq:
290 mlx5e_close_trap_rq(&t->rq);
291 err_napi_del:
292 netif_napi_del(&t->napi);
293 kvfree(t);
294 return err;
295 }
296
297 void mlx5e_close_trap(struct mlx5e_priv *priv)
298 {
299 struct mlx5e_trap *trap = priv->en_trap;
300
301 mlx5e_destroy_trap_direct_rq_tir(trap->mdev, &trap->tir);
302 mlx5e_close_trap_rq(&trap->rq);
303 netif_napi_del(&trap->napi);
304
305 kvfree(trap);
306 priv->en_trap = NULL;
307 }
308
309 static void mlx5e_activate_trap(struct mlx5e_priv *priv)
310 {
311 struct mlx5e_trap *trap = priv->en_trap;
312
313 napi_enable(&trap->napi);
314 mlx5e_activate_trap_rq(&trap->rq);
315 napi_schedule(&trap->napi);
316 }
317
318 void mlx5e_deactivate_trap(struct mlx5e_priv *priv)
319 {
320 struct mlx5e_trap *trap = priv->en_trap;
321
322 mlx5e_deactivate_trap_rq(&trap->rq);
323 napi_disable(&trap->napi);
324 }
325
326 static int mlx5e_add_trap_queue(struct mlx5e_priv *priv)
327 {
328 int err;
329
330 err = mlx5e_open_trap(priv);
331 if (err)
332 return err;
333
334 mlx5e_activate_trap(priv);
335 return 0;
336 }
337
338 static void mlx5e_del_trap_queue(struct mlx5e_priv *priv)
339 {
340 mlx5e_deactivate_trap(priv);
341 mlx5e_close_trap(priv);
342 }
343
344 static int mlx5e_trap_get_tirn(struct mlx5e_trap *en_trap)
345 {
346 return en_trap->tir.tirn;
347 }
348
349 static int mlx5e_handle_action_trap(struct mlx5e_priv *priv, int trap_id)
350 {
> 351 bool open_queue = !priv->en_trap;
352 int err;
353
354 if (open_queue) {
355 err = mlx5e_add_trap_queue(priv);
356 if (err)
357 return err;
358 }
359
360 switch (trap_id) {
361 case DEVLINK_TRAP_GENERIC_ID_INGRESS_VLAN_FILTER:
> 362 err = mlx5e_add_vlan_trap(priv, trap_id, mlx5e_trap_get_tirn(priv->en_trap));
363 if (err)
364 goto err_out;
365 break;
366 default:
367 netdev_warn(priv->netdev, "%s: Unknown trap id %d\n", __func__, trap_id);
368 err = -EINVAL;
369 goto err_out;
370 }
371 return 0;
372
373 err_out:
374 if (open_queue)
375 mlx5e_del_trap_queue(priv);
376 return err;
377 }
378
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30292 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-12-27 16:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-27 16:10 [saeed:net-next-mlx5 68/77] drivers/net/ethernet/mellanox/mlx5/core/en/trap.c:177 mlx5e_open_trap_rq() warn: inconsistent indenting kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.