|
@@ -67,10 +67,11 @@
|
|
|
|
|
|
|
|
/* insert a value to a struct */
|
|
/* insert a value to a struct */
|
|
|
#define MLX5_SET(typ, p, fld, v) do { \
|
|
#define MLX5_SET(typ, p, fld, v) do { \
|
|
|
|
|
+ u32 _v = v; \
|
|
|
BUILD_BUG_ON(__mlx5_st_sz_bits(typ) % 32); \
|
|
BUILD_BUG_ON(__mlx5_st_sz_bits(typ) % 32); \
|
|
|
*((__be32 *)(p) + __mlx5_dw_off(typ, fld)) = \
|
|
*((__be32 *)(p) + __mlx5_dw_off(typ, fld)) = \
|
|
|
cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
|
|
cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
|
|
|
- (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
|
|
|
|
|
|
|
+ (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
|
|
|
<< __mlx5_dw_bit_off(typ, fld))); \
|
|
<< __mlx5_dw_bit_off(typ, fld))); \
|
|
|
} while (0)
|
|
} while (0)
|
|
|
|
|
|