Revert "net/mlx5e: MACsec, remove replay window size limitation in offload path"
authorSaeed Mahameed <saeedm@nvidia.com>
Tue, 29 Nov 2022 09:30:05 +0000 (01:30 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 29 Nov 2022 16:19:59 +0000 (08:19 -0800)
This reverts commit c0071be0e16c461680d87b763ba1ee5e46548fde.

The cited commit removed the validity checks which initialized the
window_sz and never removed the use of the now uninitialized variable,
so now we are left with wrong value in the window size and the following
clang warning: [-Wuninitialized]
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c:232:45:
       warning: variable 'window_sz' is uninitialized when used here
       MLX5_SET(macsec_aso, aso_ctx, window_size, window_sz);

Revet at this time to address the clang issue due to lack of time to
test the proper solution.

Fixes: c0071be0e16c ("net/mlx5e: MACsec, remove replay window size limitation in offload path")
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Reported-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20221129093006.378840-1-saeed@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
include/linux/mlx5/mlx5_ifc.h

index 0d6dc39..f900709 100644 (file)
@@ -229,6 +229,22 @@ static int macsec_set_replay_protection(struct mlx5_macsec_obj_attrs *attrs, voi
        if (!attrs->replay_protect)
                return 0;
 
+       switch (attrs->replay_window) {
+       case 256:
+               window_sz = MLX5_MACSEC_ASO_REPLAY_WIN_256BIT;
+               break;
+       case 128:
+               window_sz = MLX5_MACSEC_ASO_REPLAY_WIN_128BIT;
+               break;
+       case 64:
+               window_sz = MLX5_MACSEC_ASO_REPLAY_WIN_64BIT;
+               break;
+       case 32:
+               window_sz = MLX5_MACSEC_ASO_REPLAY_WIN_32BIT;
+               break;
+       default:
+               return -EINVAL;
+       }
        MLX5_SET(macsec_aso, aso_ctx, window_size, window_sz);
        MLX5_SET(macsec_aso, aso_ctx, mode, MLX5_MACSEC_ASO_REPLAY_PROTECTION);
 
index 981fc7d..5a4e914 100644 (file)
@@ -11611,6 +11611,13 @@ enum {
        MLX5_MACSEC_ASO_REPLAY_PROTECTION = 0x1,
 };
 
+enum {
+       MLX5_MACSEC_ASO_REPLAY_WIN_32BIT  = 0x0,
+       MLX5_MACSEC_ASO_REPLAY_WIN_64BIT  = 0x1,
+       MLX5_MACSEC_ASO_REPLAY_WIN_128BIT = 0x2,
+       MLX5_MACSEC_ASO_REPLAY_WIN_256BIT = 0x3,
+};
+
 #define MLX5_MACSEC_ASO_INC_SN  0x2
 #define MLX5_MACSEC_ASO_REG_C_4_5 0x2