Lines Matching defs:mbox

339 static int mbox_alloc(struct mbox_info *mbox, int inlen, int outlen)
341 mbox->inlen = inlen;
342 mbox->outlen = outlen;
343 mbox->in = kzalloc(mbox->inlen, GFP_KERNEL);
344 mbox->out = kzalloc(mbox->outlen, GFP_KERNEL);
345 if (!mbox->in || !mbox->out) {
346 kfree(mbox->in);
347 kfree(mbox->out);
354 static void mbox_free(struct mbox_info *mbox)
356 kfree(mbox->in);
357 kfree(mbox->out);
389 struct mbox_info *mbox, u16 uid, u32 ece)
391 mbox->out = NULL;
392 mbox->in = NULL;
394 #define MBOX_ALLOC(mbox, typ) \
395 mbox_alloc(mbox, MLX5_ST_SZ_BYTES(typ##_in), MLX5_ST_SZ_BYTES(typ##_out))
415 if (MBOX_ALLOC(mbox, qp_2rst))
417 MOD_QP_IN_SET(qp_2rst, mbox->in, opcode, qpn, uid);
420 if (MBOX_ALLOC(mbox, qp_2err))
422 MOD_QP_IN_SET(qp_2err, mbox->in, opcode, qpn, uid);
427 if (MBOX_ALLOC(mbox, rst2init_qp))
429 MOD_QP_IN_SET_QPC(rst2init_qp, mbox->in, opcode, qpn,
431 MLX5_SET(rst2init_qp_in, mbox->in, ece, ece);
434 if (MBOX_ALLOC(mbox, init2rtr_qp))
436 MOD_QP_IN_SET_QPC(init2rtr_qp, mbox->in, opcode, qpn,
438 MLX5_SET(init2rtr_qp_in, mbox->in, ece, ece);
441 if (MBOX_ALLOC(mbox, rtr2rts_qp))
443 MOD_QP_IN_SET_QPC(rtr2rts_qp, mbox->in, opcode, qpn,
445 MLX5_SET(rtr2rts_qp_in, mbox->in, ece, ece);
448 if (MBOX_ALLOC(mbox, rts2rts_qp))
450 MOD_QP_IN_SET_QPC(rts2rts_qp, mbox->in, opcode, qpn,
452 MLX5_SET(rts2rts_qp_in, mbox->in, ece, ece);
455 if (MBOX_ALLOC(mbox, sqerr2rts_qp))
457 MOD_QP_IN_SET_QPC(sqerr2rts_qp, mbox->in, opcode, qpn,
461 if (MBOX_ALLOC(mbox, sqd2rts_qp))
463 MOD_QP_IN_SET_QPC(sqd2rts_qp, mbox->in, opcode, qpn,
467 if (MBOX_ALLOC(mbox, init2init_qp))
469 MOD_QP_IN_SET_QPC(init2init_qp, mbox->in, opcode, qpn,
471 MLX5_SET(init2init_qp_in, mbox->in, ece, ece);
482 struct mbox_info mbox;
486 qpc, &mbox, qp->uid, (ece) ? *ece : 0);
490 err = mlx5_cmd_exec(dev->mdev, mbox.in, mbox.inlen, mbox.out,
491 mbox.outlen);
494 *ece = get_ece_from_mbox(mbox.out, opcode);
496 mbox_free(&mbox);