From: Tom Herbert > Sent: 11 October 2016 05:22 ... > Fix is to create MLX5_SET64_VCHK that takes an additional argument > that is a constant. There are two callers of MLX5_SET64 that are > trying to get a variable offset, change those to call MLX5_SET64_VCHK > passing pas[0] as the argument to use in the offset check.
I think I'd separate the array index instead. Something like: #define MLX5_SET64_INDEXED(typ, p, fld, ndx, v) do { \ BUILD_BUG_ON(__mlx5_bit_off(typ, fld) % 64); \ __MLX5_SET64(typ, p, fld[ndx], v); \ } while (0) David