Thread (5 messages) 5 messages, 3 authors, 2021-02-12

Re: [bug report] net/mlx5e: E-Switch, Maintain vhca_id to vport_num mapping

From: Leon Romanovsky <leon@kernel.org>
Date: 2021-02-10 14:45:03
Also in: netdev

On Wed, Feb 10, 2021 at 03:28:01PM +0300, Dan Carpenter wrote:
On Wed, Feb 10, 2021 at 01:48:20PM +0200, Leon Romanovsky wrote:
quoted
On Wed, Feb 10, 2021 at 11:51:51AM +0300, Dan Carpenter wrote:
quoted
Hello Vlad Buslov,

The patch 84ae9c1f29c0: "net/mlx5e: E-Switch, Maintain vhca_id to
vport_num mapping" from Sep 23, 2020, leads to the following static
checker warning:

	drivers/net/ethernet/mellanox/mlx5/core/vport.c:1170 mlx5_vport_get_other_func_cap()
	warn: odd binop '0x0 & 0x1'

drivers/net/ethernet/mellanox/mlx5/core/vport.c
  1168  int mlx5_vport_get_other_func_cap(struct mlx5_core_dev *dev, u16 function_id, void *out)
  1169  {
  1170          u16 opmod = (MLX5_CAP_GENERAL << 1) | (HCA_CAP_OPMOD_GET_MAX & 0x01);

HCA_CAP_OPMOD_GET_MAX is zero.  The 0x01 is a magical number.

  1171          u8 in[MLX5_ST_SZ_BYTES(query_hca_cap_in)] = {};
  1172
  1173          MLX5_SET(query_hca_cap_in, in, opcode, MLX5_CMD_OP_QUERY_HCA_CAP);
  1174          MLX5_SET(query_hca_cap_in, in, op_mod, opmod);
  1175          MLX5_SET(query_hca_cap_in, in, function_id, function_id);
  1176          MLX5_SET(query_hca_cap_in, in, other_function, true);
  1177          return mlx5_cmd_exec_inout(dev, query_hca_cap, in, out);
  1178  }
Dan,

I'm running smatch which is based on 6193b3b71beb ("extra: fix some error pointer handling")
and I don't see this error. Should I run something special?
This check is too crap to publish.

The heuristic was "a bitwise AND which always results in zero" but a lot
of code does stuff like:  "data = 0x00 << 0 | 0x04 << 8 | 0x12 << 16;"
I could never figure out a way to make the check useful enough to
publish.
But you can warn about simple cases like above, which is constant zero
AND something.

Thanks
regards,
dan carpenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help