浏览代码

net/mlx5: Prevent warns in dmesg upon firmware commands

When DEVX is used application builds by itself the command mail box,
this patch prevents warns upon firmware commands as of invalid user
space usage.

In addition,
A failure in destroy_mkey command was changed to be printed only under
debug mode.

This prevents a redundant warn when a memory window was used
with rereg_mr and finally was some kernel cleanup as of reset
flow/process termination.

In that case this command might temporarily fails as part of the cleanup
but finally it expects to succeed.

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Yishai Hadas 7 年之前
父节点
当前提交
fc6c391a7a
共有 1 个文件被更改,包括 13 次插入2 次删除
  1. 13 2
      drivers/net/ethernet/mellanox/mlx5/core/cmd.c

+ 13 - 2
drivers/net/ethernet/mellanox/mlx5/core/cmd.c

@@ -677,7 +677,7 @@ struct mlx5_ifc_mbox_out_bits {
 
 
 struct mlx5_ifc_mbox_in_bits {
 struct mlx5_ifc_mbox_in_bits {
 	u8         opcode[0x10];
 	u8         opcode[0x10];
-	u8         reserved_at_10[0x10];
+	u8         uid[0x10];
 
 
 	u8         reserved_at_20[0x10];
 	u8         reserved_at_20[0x10];
 	u8         op_mod[0x10];
 	u8         op_mod[0x10];
@@ -697,6 +697,7 @@ static int mlx5_cmd_check(struct mlx5_core_dev *dev, void *in, void *out)
 	u8  status;
 	u8  status;
 	u16 opcode;
 	u16 opcode;
 	u16 op_mod;
 	u16 op_mod;
+	u16 uid;
 
 
 	mlx5_cmd_mbox_status(out, &status, &syndrome);
 	mlx5_cmd_mbox_status(out, &status, &syndrome);
 	if (!status)
 	if (!status)
@@ -704,8 +705,18 @@ static int mlx5_cmd_check(struct mlx5_core_dev *dev, void *in, void *out)
 
 
 	opcode = MLX5_GET(mbox_in, in, opcode);
 	opcode = MLX5_GET(mbox_in, in, opcode);
 	op_mod = MLX5_GET(mbox_in, in, op_mod);
 	op_mod = MLX5_GET(mbox_in, in, op_mod);
+	uid    = MLX5_GET(mbox_in, in, uid);
 
 
-	mlx5_core_err(dev,
+	if (!uid && opcode != MLX5_CMD_OP_DESTROY_MKEY)
+		mlx5_core_err(dev,
+		      "%s(0x%x) op_mod(0x%x) failed, status %s(0x%x), syndrome (0x%x)\n",
+		      mlx5_command_str(opcode),
+		      opcode, op_mod,
+		      cmd_status_str(status),
+		      status,
+		      syndrome);
+	else
+		mlx5_core_dbg(dev,
 		      "%s(0x%x) op_mod(0x%x) failed, status %s(0x%x), syndrome (0x%x)\n",
 		      "%s(0x%x) op_mod(0x%x) failed, status %s(0x%x), syndrome (0x%x)\n",
 		      mlx5_command_str(opcode),
 		      mlx5_command_str(opcode),
 		      opcode, op_mod,
 		      opcode, op_mod,