diff options
author | Yishai Hadas <yishaih@mellanox.com> | 2018-09-20 14:35:24 -0400 |
---|---|---|
committer | Leon Romanovsky <leonro@mellanox.com> | 2018-09-25 02:52:52 -0400 |
commit | a0d8c054318976927493ffd26055d9d183c9beec (patch) | |
tree | 4e2842362e8520f811fc52e4c99b3faccb763040 | |
parent | 430ae0d5a3ce1350375690cb6ab29ab6fae4a9ac (diff) |
net/mlx5: Set uid as part of SRQ commands
Set uid as part of SRQ commands so that the firmware can manage the
SRQ object in a secured way.
That will enable using an SRQ that was created by verbs application
to be used by the DEVX flow in case the uid is equal.
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/srq.c | 30 | ||||
-rw-r--r-- | include/linux/mlx5/driver.h | 1 | ||||
-rw-r--r-- | include/linux/mlx5/mlx5_ifc.h | 22 | ||||
-rw-r--r-- | include/linux/mlx5/srq.h | 1 |
4 files changed, 40 insertions, 14 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/srq.c b/drivers/net/ethernet/mellanox/mlx5/core/srq.c index 23cc337a96c9..5c519615fb1c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/srq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/srq.c | |||
@@ -166,6 +166,7 @@ static int create_srq_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, | |||
166 | if (!create_in) | 166 | if (!create_in) |
167 | return -ENOMEM; | 167 | return -ENOMEM; |
168 | 168 | ||
169 | MLX5_SET(create_srq_in, create_in, uid, in->uid); | ||
169 | srqc = MLX5_ADDR_OF(create_srq_in, create_in, srq_context_entry); | 170 | srqc = MLX5_ADDR_OF(create_srq_in, create_in, srq_context_entry); |
170 | pas = MLX5_ADDR_OF(create_srq_in, create_in, pas); | 171 | pas = MLX5_ADDR_OF(create_srq_in, create_in, pas); |
171 | 172 | ||
@@ -178,8 +179,10 @@ static int create_srq_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, | |||
178 | err = mlx5_cmd_exec(dev, create_in, inlen, create_out, | 179 | err = mlx5_cmd_exec(dev, create_in, inlen, create_out, |
179 | sizeof(create_out)); | 180 | sizeof(create_out)); |
180 | kvfree(create_in); | 181 | kvfree(create_in); |
181 | if (!err) | 182 | if (!err) { |
182 | srq->srqn = MLX5_GET(create_srq_out, create_out, srqn); | 183 | srq->srqn = MLX5_GET(create_srq_out, create_out, srqn); |
184 | srq->uid = in->uid; | ||
185 | } | ||
183 | 186 | ||
184 | return err; | 187 | return err; |
185 | } | 188 | } |
@@ -193,6 +196,7 @@ static int destroy_srq_cmd(struct mlx5_core_dev *dev, | |||
193 | MLX5_SET(destroy_srq_in, srq_in, opcode, | 196 | MLX5_SET(destroy_srq_in, srq_in, opcode, |
194 | MLX5_CMD_OP_DESTROY_SRQ); | 197 | MLX5_CMD_OP_DESTROY_SRQ); |
195 | MLX5_SET(destroy_srq_in, srq_in, srqn, srq->srqn); | 198 | MLX5_SET(destroy_srq_in, srq_in, srqn, srq->srqn); |
199 | MLX5_SET(destroy_srq_in, srq_in, uid, srq->uid); | ||
196 | 200 | ||
197 | return mlx5_cmd_exec(dev, srq_in, sizeof(srq_in), | 201 | return mlx5_cmd_exec(dev, srq_in, sizeof(srq_in), |
198 | srq_out, sizeof(srq_out)); | 202 | srq_out, sizeof(srq_out)); |
@@ -208,6 +212,7 @@ static int arm_srq_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, | |||
208 | MLX5_SET(arm_rq_in, srq_in, op_mod, MLX5_ARM_RQ_IN_OP_MOD_SRQ); | 212 | MLX5_SET(arm_rq_in, srq_in, op_mod, MLX5_ARM_RQ_IN_OP_MOD_SRQ); |
209 | MLX5_SET(arm_rq_in, srq_in, srq_number, srq->srqn); | 213 | MLX5_SET(arm_rq_in, srq_in, srq_number, srq->srqn); |
210 | MLX5_SET(arm_rq_in, srq_in, lwm, lwm); | 214 | MLX5_SET(arm_rq_in, srq_in, lwm, lwm); |
215 | MLX5_SET(arm_rq_in, srq_in, uid, srq->uid); | ||
211 | 216 | ||
212 | return mlx5_cmd_exec(dev, srq_in, sizeof(srq_in), | 217 | return mlx5_cmd_exec(dev, srq_in, sizeof(srq_in), |
213 | srq_out, sizeof(srq_out)); | 218 | srq_out, sizeof(srq_out)); |
@@ -260,6 +265,7 @@ static int create_xrc_srq_cmd(struct mlx5_core_dev *dev, | |||
260 | if (!create_in) | 265 | if (!create_in) |
261 | return -ENOMEM; | 266 | return -ENOMEM; |
262 | 267 | ||
268 | MLX5_SET(create_xrc_srq_in, create_in, uid, in->uid); | ||
263 | xrc_srqc = MLX5_ADDR_OF(create_xrc_srq_in, create_in, | 269 | xrc_srqc = MLX5_ADDR_OF(create_xrc_srq_in, create_in, |
264 | xrc_srq_context_entry); | 270 | xrc_srq_context_entry); |
265 | pas = MLX5_ADDR_OF(create_xrc_srq_in, create_in, pas); | 271 | pas = MLX5_ADDR_OF(create_xrc_srq_in, create_in, pas); |
@@ -277,6 +283,7 @@ static int create_xrc_srq_cmd(struct mlx5_core_dev *dev, | |||
277 | goto out; | 283 | goto out; |
278 | 284 | ||
279 | srq->srqn = MLX5_GET(create_xrc_srq_out, create_out, xrc_srqn); | 285 | srq->srqn = MLX5_GET(create_xrc_srq_out, create_out, xrc_srqn); |
286 | srq->uid = in->uid; | ||
280 | out: | 287 | out: |
281 | kvfree(create_in); | 288 | kvfree(create_in); |
282 | return err; | 289 | return err; |
@@ -291,6 +298,7 @@ static int destroy_xrc_srq_cmd(struct mlx5_core_dev *dev, | |||
291 | MLX5_SET(destroy_xrc_srq_in, xrcsrq_in, opcode, | 298 | MLX5_SET(destroy_xrc_srq_in, xrcsrq_in, opcode, |
292 | MLX5_CMD_OP_DESTROY_XRC_SRQ); | 299 | MLX5_CMD_OP_DESTROY_XRC_SRQ); |
293 | MLX5_SET(destroy_xrc_srq_in, xrcsrq_in, xrc_srqn, srq->srqn); | 300 | MLX5_SET(destroy_xrc_srq_in, xrcsrq_in, xrc_srqn, srq->srqn); |
301 | MLX5_SET(destroy_xrc_srq_in, xrcsrq_in, uid, srq->uid); | ||
294 | 302 | ||
295 | return mlx5_cmd_exec(dev, xrcsrq_in, sizeof(xrcsrq_in), | 303 | return mlx5_cmd_exec(dev, xrcsrq_in, sizeof(xrcsrq_in), |
296 | xrcsrq_out, sizeof(xrcsrq_out)); | 304 | xrcsrq_out, sizeof(xrcsrq_out)); |
@@ -306,6 +314,7 @@ static int arm_xrc_srq_cmd(struct mlx5_core_dev *dev, | |||
306 | MLX5_SET(arm_xrc_srq_in, xrcsrq_in, op_mod, MLX5_ARM_XRC_SRQ_IN_OP_MOD_XRC_SRQ); | 314 | MLX5_SET(arm_xrc_srq_in, xrcsrq_in, op_mod, MLX5_ARM_XRC_SRQ_IN_OP_MOD_XRC_SRQ); |
307 | MLX5_SET(arm_xrc_srq_in, xrcsrq_in, xrc_srqn, srq->srqn); | 315 | MLX5_SET(arm_xrc_srq_in, xrcsrq_in, xrc_srqn, srq->srqn); |
308 | MLX5_SET(arm_xrc_srq_in, xrcsrq_in, lwm, lwm); | 316 | MLX5_SET(arm_xrc_srq_in, xrcsrq_in, lwm, lwm); |
317 | MLX5_SET(arm_xrc_srq_in, xrcsrq_in, uid, srq->uid); | ||
309 | 318 | ||
310 | return mlx5_cmd_exec(dev, xrcsrq_in, sizeof(xrcsrq_in), | 319 | return mlx5_cmd_exec(dev, xrcsrq_in, sizeof(xrcsrq_in), |
311 | xrcsrq_out, sizeof(xrcsrq_out)); | 320 | xrcsrq_out, sizeof(xrcsrq_out)); |
@@ -365,10 +374,13 @@ static int create_rmp_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, | |||
365 | wq = MLX5_ADDR_OF(rmpc, rmpc, wq); | 374 | wq = MLX5_ADDR_OF(rmpc, rmpc, wq); |
366 | 375 | ||
367 | MLX5_SET(rmpc, rmpc, state, MLX5_RMPC_STATE_RDY); | 376 | MLX5_SET(rmpc, rmpc, state, MLX5_RMPC_STATE_RDY); |
377 | MLX5_SET(create_rmp_in, create_in, uid, in->uid); | ||
368 | set_wq(wq, in); | 378 | set_wq(wq, in); |
369 | memcpy(MLX5_ADDR_OF(rmpc, rmpc, wq.pas), in->pas, pas_size); | 379 | memcpy(MLX5_ADDR_OF(rmpc, rmpc, wq.pas), in->pas, pas_size); |
370 | 380 | ||
371 | err = mlx5_core_create_rmp(dev, create_in, inlen, &srq->srqn); | 381 | err = mlx5_core_create_rmp(dev, create_in, inlen, &srq->srqn); |
382 | if (!err) | ||
383 | srq->uid = in->uid; | ||
372 | 384 | ||
373 | kvfree(create_in); | 385 | kvfree(create_in); |
374 | return err; | 386 | return err; |
@@ -377,7 +389,13 @@ static int create_rmp_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, | |||
377 | static int destroy_rmp_cmd(struct mlx5_core_dev *dev, | 389 | static int destroy_rmp_cmd(struct mlx5_core_dev *dev, |
378 | struct mlx5_core_srq *srq) | 390 | struct mlx5_core_srq *srq) |
379 | { | 391 | { |
380 | return mlx5_core_destroy_rmp(dev, srq->srqn); | 392 | u32 in[MLX5_ST_SZ_DW(destroy_rmp_in)] = {}; |
393 | u32 out[MLX5_ST_SZ_DW(destroy_rmp_out)] = {}; | ||
394 | |||
395 | MLX5_SET(destroy_rmp_in, in, opcode, MLX5_CMD_OP_DESTROY_RMP); | ||
396 | MLX5_SET(destroy_rmp_in, in, rmpn, srq->srqn); | ||
397 | MLX5_SET(destroy_rmp_in, in, uid, srq->uid); | ||
398 | return mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); | ||
381 | } | 399 | } |
382 | 400 | ||
383 | static int arm_rmp_cmd(struct mlx5_core_dev *dev, | 401 | static int arm_rmp_cmd(struct mlx5_core_dev *dev, |
@@ -400,6 +418,7 @@ static int arm_rmp_cmd(struct mlx5_core_dev *dev, | |||
400 | 418 | ||
401 | MLX5_SET(modify_rmp_in, in, rmp_state, MLX5_RMPC_STATE_RDY); | 419 | MLX5_SET(modify_rmp_in, in, rmp_state, MLX5_RMPC_STATE_RDY); |
402 | MLX5_SET(modify_rmp_in, in, rmpn, srq->srqn); | 420 | MLX5_SET(modify_rmp_in, in, rmpn, srq->srqn); |
421 | MLX5_SET(modify_rmp_in, in, uid, srq->uid); | ||
403 | MLX5_SET(wq, wq, lwm, lwm); | 422 | MLX5_SET(wq, wq, lwm, lwm); |
404 | MLX5_SET(rmp_bitmask, bitmask, lwm, 1); | 423 | MLX5_SET(rmp_bitmask, bitmask, lwm, 1); |
405 | MLX5_SET(rmpc, rmpc, state, MLX5_RMPC_STATE_RDY); | 424 | MLX5_SET(rmpc, rmpc, state, MLX5_RMPC_STATE_RDY); |
@@ -469,11 +488,14 @@ static int create_xrq_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, | |||
469 | MLX5_SET(xrqc, xrqc, user_index, in->user_index); | 488 | MLX5_SET(xrqc, xrqc, user_index, in->user_index); |
470 | MLX5_SET(xrqc, xrqc, cqn, in->cqn); | 489 | MLX5_SET(xrqc, xrqc, cqn, in->cqn); |
471 | MLX5_SET(create_xrq_in, create_in, opcode, MLX5_CMD_OP_CREATE_XRQ); | 490 | MLX5_SET(create_xrq_in, create_in, opcode, MLX5_CMD_OP_CREATE_XRQ); |
491 | MLX5_SET(create_xrq_in, create_in, uid, in->uid); | ||
472 | err = mlx5_cmd_exec(dev, create_in, inlen, create_out, | 492 | err = mlx5_cmd_exec(dev, create_in, inlen, create_out, |
473 | sizeof(create_out)); | 493 | sizeof(create_out)); |
474 | kvfree(create_in); | 494 | kvfree(create_in); |
475 | if (!err) | 495 | if (!err) { |
476 | srq->srqn = MLX5_GET(create_xrq_out, create_out, xrqn); | 496 | srq->srqn = MLX5_GET(create_xrq_out, create_out, xrqn); |
497 | srq->uid = in->uid; | ||
498 | } | ||
477 | 499 | ||
478 | return err; | 500 | return err; |
479 | } | 501 | } |
@@ -485,6 +507,7 @@ static int destroy_xrq_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq) | |||
485 | 507 | ||
486 | MLX5_SET(destroy_xrq_in, in, opcode, MLX5_CMD_OP_DESTROY_XRQ); | 508 | MLX5_SET(destroy_xrq_in, in, opcode, MLX5_CMD_OP_DESTROY_XRQ); |
487 | MLX5_SET(destroy_xrq_in, in, xrqn, srq->srqn); | 509 | MLX5_SET(destroy_xrq_in, in, xrqn, srq->srqn); |
510 | MLX5_SET(destroy_xrq_in, in, uid, srq->uid); | ||
488 | 511 | ||
489 | return mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); | 512 | return mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); |
490 | } | 513 | } |
@@ -500,6 +523,7 @@ static int arm_xrq_cmd(struct mlx5_core_dev *dev, | |||
500 | MLX5_SET(arm_rq_in, in, op_mod, MLX5_ARM_RQ_IN_OP_MOD_XRQ); | 523 | MLX5_SET(arm_rq_in, in, op_mod, MLX5_ARM_RQ_IN_OP_MOD_XRQ); |
501 | MLX5_SET(arm_rq_in, in, srq_number, srq->srqn); | 524 | MLX5_SET(arm_rq_in, in, srq_number, srq->srqn); |
502 | MLX5_SET(arm_rq_in, in, lwm, lwm); | 525 | MLX5_SET(arm_rq_in, in, lwm, lwm); |
526 | MLX5_SET(arm_rq_in, in, uid, srq->uid); | ||
503 | 527 | ||
504 | return mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); | 528 | return mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); |
505 | } | 529 | } |
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index d885e9f0e054..8fb072aa8671 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h | |||
@@ -474,6 +474,7 @@ struct mlx5_core_srq { | |||
474 | 474 | ||
475 | atomic_t refcount; | 475 | atomic_t refcount; |
476 | struct completion free; | 476 | struct completion free; |
477 | u16 uid; | ||
477 | }; | 478 | }; |
478 | 479 | ||
479 | struct mlx5_eq_table { | 480 | struct mlx5_eq_table { |
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h index 72dd1e49a799..85f1237d80db 100644 --- a/include/linux/mlx5/mlx5_ifc.h +++ b/include/linux/mlx5/mlx5_ifc.h | |||
@@ -5524,7 +5524,7 @@ struct mlx5_ifc_rmp_bitmask_bits { | |||
5524 | 5524 | ||
5525 | struct mlx5_ifc_modify_rmp_in_bits { | 5525 | struct mlx5_ifc_modify_rmp_in_bits { |
5526 | u8 opcode[0x10]; | 5526 | u8 opcode[0x10]; |
5527 | u8 reserved_at_10[0x10]; | 5527 | u8 uid[0x10]; |
5528 | 5528 | ||
5529 | u8 reserved_at_20[0x10]; | 5529 | u8 reserved_at_20[0x10]; |
5530 | u8 op_mod[0x10]; | 5530 | u8 op_mod[0x10]; |
@@ -5986,7 +5986,7 @@ struct mlx5_ifc_destroy_xrq_out_bits { | |||
5986 | 5986 | ||
5987 | struct mlx5_ifc_destroy_xrq_in_bits { | 5987 | struct mlx5_ifc_destroy_xrq_in_bits { |
5988 | u8 opcode[0x10]; | 5988 | u8 opcode[0x10]; |
5989 | u8 reserved_at_10[0x10]; | 5989 | u8 uid[0x10]; |
5990 | 5990 | ||
5991 | u8 reserved_at_20[0x10]; | 5991 | u8 reserved_at_20[0x10]; |
5992 | u8 op_mod[0x10]; | 5992 | u8 op_mod[0x10]; |
@@ -6008,7 +6008,7 @@ struct mlx5_ifc_destroy_xrc_srq_out_bits { | |||
6008 | 6008 | ||
6009 | struct mlx5_ifc_destroy_xrc_srq_in_bits { | 6009 | struct mlx5_ifc_destroy_xrc_srq_in_bits { |
6010 | u8 opcode[0x10]; | 6010 | u8 opcode[0x10]; |
6011 | u8 reserved_at_10[0x10]; | 6011 | u8 uid[0x10]; |
6012 | 6012 | ||
6013 | u8 reserved_at_20[0x10]; | 6013 | u8 reserved_at_20[0x10]; |
6014 | u8 op_mod[0x10]; | 6014 | u8 op_mod[0x10]; |
@@ -6074,7 +6074,7 @@ struct mlx5_ifc_destroy_srq_out_bits { | |||
6074 | 6074 | ||
6075 | struct mlx5_ifc_destroy_srq_in_bits { | 6075 | struct mlx5_ifc_destroy_srq_in_bits { |
6076 | u8 opcode[0x10]; | 6076 | u8 opcode[0x10]; |
6077 | u8 reserved_at_10[0x10]; | 6077 | u8 uid[0x10]; |
6078 | 6078 | ||
6079 | u8 reserved_at_20[0x10]; | 6079 | u8 reserved_at_20[0x10]; |
6080 | u8 op_mod[0x10]; | 6080 | u8 op_mod[0x10]; |
@@ -6208,7 +6208,7 @@ struct mlx5_ifc_destroy_rmp_out_bits { | |||
6208 | 6208 | ||
6209 | struct mlx5_ifc_destroy_rmp_in_bits { | 6209 | struct mlx5_ifc_destroy_rmp_in_bits { |
6210 | u8 opcode[0x10]; | 6210 | u8 opcode[0x10]; |
6211 | u8 reserved_at_10[0x10]; | 6211 | u8 uid[0x10]; |
6212 | 6212 | ||
6213 | u8 reserved_at_20[0x10]; | 6213 | u8 reserved_at_20[0x10]; |
6214 | u8 op_mod[0x10]; | 6214 | u8 op_mod[0x10]; |
@@ -6641,7 +6641,7 @@ struct mlx5_ifc_create_xrq_out_bits { | |||
6641 | 6641 | ||
6642 | struct mlx5_ifc_create_xrq_in_bits { | 6642 | struct mlx5_ifc_create_xrq_in_bits { |
6643 | u8 opcode[0x10]; | 6643 | u8 opcode[0x10]; |
6644 | u8 reserved_at_10[0x10]; | 6644 | u8 uid[0x10]; |
6645 | 6645 | ||
6646 | u8 reserved_at_20[0x10]; | 6646 | u8 reserved_at_20[0x10]; |
6647 | u8 op_mod[0x10]; | 6647 | u8 op_mod[0x10]; |
@@ -6665,7 +6665,7 @@ struct mlx5_ifc_create_xrc_srq_out_bits { | |||
6665 | 6665 | ||
6666 | struct mlx5_ifc_create_xrc_srq_in_bits { | 6666 | struct mlx5_ifc_create_xrc_srq_in_bits { |
6667 | u8 opcode[0x10]; | 6667 | u8 opcode[0x10]; |
6668 | u8 reserved_at_10[0x10]; | 6668 | u8 uid[0x10]; |
6669 | 6669 | ||
6670 | u8 reserved_at_20[0x10]; | 6670 | u8 reserved_at_20[0x10]; |
6671 | u8 op_mod[0x10]; | 6671 | u8 op_mod[0x10]; |
@@ -6741,7 +6741,7 @@ struct mlx5_ifc_create_srq_out_bits { | |||
6741 | 6741 | ||
6742 | struct mlx5_ifc_create_srq_in_bits { | 6742 | struct mlx5_ifc_create_srq_in_bits { |
6743 | u8 opcode[0x10]; | 6743 | u8 opcode[0x10]; |
6744 | u8 reserved_at_10[0x10]; | 6744 | u8 uid[0x10]; |
6745 | 6745 | ||
6746 | u8 reserved_at_20[0x10]; | 6746 | u8 reserved_at_20[0x10]; |
6747 | u8 op_mod[0x10]; | 6747 | u8 op_mod[0x10]; |
@@ -6871,7 +6871,7 @@ struct mlx5_ifc_create_rmp_out_bits { | |||
6871 | 6871 | ||
6872 | struct mlx5_ifc_create_rmp_in_bits { | 6872 | struct mlx5_ifc_create_rmp_in_bits { |
6873 | u8 opcode[0x10]; | 6873 | u8 opcode[0x10]; |
6874 | u8 reserved_at_10[0x10]; | 6874 | u8 uid[0x10]; |
6875 | 6875 | ||
6876 | u8 reserved_at_20[0x10]; | 6876 | u8 reserved_at_20[0x10]; |
6877 | u8 op_mod[0x10]; | 6877 | u8 op_mod[0x10]; |
@@ -7272,7 +7272,7 @@ enum { | |||
7272 | 7272 | ||
7273 | struct mlx5_ifc_arm_xrc_srq_in_bits { | 7273 | struct mlx5_ifc_arm_xrc_srq_in_bits { |
7274 | u8 opcode[0x10]; | 7274 | u8 opcode[0x10]; |
7275 | u8 reserved_at_10[0x10]; | 7275 | u8 uid[0x10]; |
7276 | 7276 | ||
7277 | u8 reserved_at_20[0x10]; | 7277 | u8 reserved_at_20[0x10]; |
7278 | u8 op_mod[0x10]; | 7278 | u8 op_mod[0x10]; |
@@ -7300,7 +7300,7 @@ enum { | |||
7300 | 7300 | ||
7301 | struct mlx5_ifc_arm_rq_in_bits { | 7301 | struct mlx5_ifc_arm_rq_in_bits { |
7302 | u8 opcode[0x10]; | 7302 | u8 opcode[0x10]; |
7303 | u8 reserved_at_10[0x10]; | 7303 | u8 uid[0x10]; |
7304 | 7304 | ||
7305 | u8 reserved_at_20[0x10]; | 7305 | u8 reserved_at_20[0x10]; |
7306 | u8 op_mod[0x10]; | 7306 | u8 op_mod[0x10]; |
diff --git a/include/linux/mlx5/srq.h b/include/linux/mlx5/srq.h index 24ff23e27c8a..1b1f3c20c6a3 100644 --- a/include/linux/mlx5/srq.h +++ b/include/linux/mlx5/srq.h | |||
@@ -61,6 +61,7 @@ struct mlx5_srq_attr { | |||
61 | u32 tm_next_tag; | 61 | u32 tm_next_tag; |
62 | u32 tm_hw_phase_cnt; | 62 | u32 tm_hw_phase_cnt; |
63 | u32 tm_sw_phase_cnt; | 63 | u32 tm_sw_phase_cnt; |
64 | u16 uid; | ||
64 | }; | 65 | }; |
65 | 66 | ||
66 | struct mlx5_core_dev; | 67 | struct mlx5_core_dev; |