Skip to content

Commit 719598c

Browse files
yishaihdledford
authored andcommitted
IB/mlx5: Update the supported DEVX commands
Update the supported DEVX commands, it includes adding to the query/modify command's list and to the encoding handling. In addition, a valid range for general commands was added to be used for future commands. Signed-off-by: Yishai Hadas <yishaih@mellanox.com> Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
1 parent fb98153 commit 719598c

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

drivers/infiniband/hw/mlx5/devx.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,8 @@ static u64 devx_get_obj_id(const void *in)
314314
MLX5_GET(query_dct_in, in, dctn));
315315
break;
316316
case MLX5_CMD_OP_QUERY_XRQ:
317+
case MLX5_CMD_OP_QUERY_XRQ_DC_PARAMS_ENTRY:
318+
case MLX5_CMD_OP_QUERY_XRQ_ERROR_PARAMS:
317319
obj_id = get_enc_obj_id(MLX5_CMD_OP_CREATE_XRQ,
318320
MLX5_GET(query_xrq_in, in, xrqn));
319321
break;
@@ -340,9 +342,16 @@ static u64 devx_get_obj_id(const void *in)
340342
MLX5_GET(drain_dct_in, in, dctn));
341343
break;
342344
case MLX5_CMD_OP_ARM_XRQ:
345+
case MLX5_CMD_OP_SET_XRQ_DC_PARAMS_ENTRY:
343346
obj_id = get_enc_obj_id(MLX5_CMD_OP_CREATE_XRQ,
344347
MLX5_GET(arm_xrq_in, in, xrqn));
345348
break;
349+
case MLX5_CMD_OP_QUERY_PACKET_REFORMAT_CONTEXT:
350+
obj_id = get_enc_obj_id
351+
(MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT,
352+
MLX5_GET(query_packet_reformat_context_in,
353+
in, packet_reformat_id));
354+
break;
346355
default:
347356
obj_id = 0;
348357
}
@@ -601,6 +610,7 @@ static bool devx_is_obj_modify_cmd(const void *in)
601610
case MLX5_CMD_OP_DRAIN_DCT:
602611
case MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION:
603612
case MLX5_CMD_OP_ARM_XRQ:
613+
case MLX5_CMD_OP_SET_XRQ_DC_PARAMS_ENTRY:
604614
return true;
605615
case MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY:
606616
{
@@ -642,6 +652,9 @@ static bool devx_is_obj_query_cmd(const void *in)
642652
case MLX5_CMD_OP_QUERY_XRC_SRQ:
643653
case MLX5_CMD_OP_QUERY_DCT:
644654
case MLX5_CMD_OP_QUERY_XRQ:
655+
case MLX5_CMD_OP_QUERY_XRQ_DC_PARAMS_ENTRY:
656+
case MLX5_CMD_OP_QUERY_XRQ_ERROR_PARAMS:
657+
case MLX5_CMD_OP_QUERY_PACKET_REFORMAT_CONTEXT:
645658
return true;
646659
default:
647660
return false;
@@ -685,6 +698,10 @@ static bool devx_is_general_cmd(void *in)
685698
{
686699
u16 opcode = MLX5_GET(general_obj_in_cmd_hdr, in, opcode);
687700

701+
if (opcode >= MLX5_CMD_OP_GENERAL_START &&
702+
opcode < MLX5_CMD_OP_GENERAL_END)
703+
return true;
704+
688705
switch (opcode) {
689706
case MLX5_CMD_OP_QUERY_HCA_CAP:
690707
case MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT:

include/linux/mlx5/mlx5_ifc.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ enum {
144144
MLX5_CMD_OP_DESTROY_XRQ = 0x718,
145145
MLX5_CMD_OP_QUERY_XRQ = 0x719,
146146
MLX5_CMD_OP_ARM_XRQ = 0x71a,
147+
MLX5_CMD_OP_QUERY_XRQ_DC_PARAMS_ENTRY = 0x725,
148+
MLX5_CMD_OP_SET_XRQ_DC_PARAMS_ENTRY = 0x726,
149+
MLX5_CMD_OP_QUERY_XRQ_ERROR_PARAMS = 0x727,
147150
MLX5_CMD_OP_QUERY_VPORT_STATE = 0x750,
148151
MLX5_CMD_OP_MODIFY_VPORT_STATE = 0x751,
149152
MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT = 0x752,
@@ -245,6 +248,7 @@ enum {
245248
MLX5_CMD_OP_MODIFY_FLOW_TABLE = 0x93c,
246249
MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT = 0x93d,
247250
MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT = 0x93e,
251+
MLX5_CMD_OP_QUERY_PACKET_REFORMAT_CONTEXT = 0x93f,
248252
MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT = 0x940,
249253
MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT = 0x941,
250254
MLX5_CMD_OP_QUERY_MODIFY_HEADER_CONTEXT = 0x942,
@@ -260,6 +264,12 @@ enum {
260264
MLX5_CMD_OP_MAX
261265
};
262266

267+
/* Valid range for general commands that don't work over an object */
268+
enum {
269+
MLX5_CMD_OP_GENERAL_START = 0xb00,
270+
MLX5_CMD_OP_GENERAL_END = 0xd00,
271+
};
272+
263273
struct mlx5_ifc_flow_table_fields_supported_bits {
264274
u8 outer_dmac[0x1];
265275
u8 outer_smac[0x1];

0 commit comments

Comments
 (0)