Skip to content

Commit ccc0c9b

Browse files
committed
Merge tag 'mlx5-fixes-2021-12-28' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
Saeed Mahameed says: ==================== mlx5 fixes 2021-12-28 This series provides bug fixes to mlx5 driver. * tag 'mlx5-fixes-2021-12-28' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux: net/mlx5e: Fix wrong features assignment in case of error net/mlx5e: TC, Fix memory leak with rules with internal port ==================== Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 92a34ab + 992d8a4 commit ccc0c9b

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en_main.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3741,35 +3741,34 @@ static int set_feature_arfs(struct net_device *netdev, bool enable)
37413741

37423742
static int mlx5e_handle_feature(struct net_device *netdev,
37433743
netdev_features_t *features,
3744-
netdev_features_t wanted_features,
37453744
netdev_features_t feature,
37463745
mlx5e_feature_handler feature_handler)
37473746
{
3748-
netdev_features_t changes = wanted_features ^ netdev->features;
3749-
bool enable = !!(wanted_features & feature);
3747+
netdev_features_t changes = *features ^ netdev->features;
3748+
bool enable = !!(*features & feature);
37503749
int err;
37513750

37523751
if (!(changes & feature))
37533752
return 0;
37543753

37553754
err = feature_handler(netdev, enable);
37563755
if (err) {
3756+
MLX5E_SET_FEATURE(features, feature, !enable);
37573757
netdev_err(netdev, "%s feature %pNF failed, err %d\n",
37583758
enable ? "Enable" : "Disable", &feature, err);
37593759
return err;
37603760
}
37613761

3762-
MLX5E_SET_FEATURE(features, feature, enable);
37633762
return 0;
37643763
}
37653764

37663765
int mlx5e_set_features(struct net_device *netdev, netdev_features_t features)
37673766
{
3768-
netdev_features_t oper_features = netdev->features;
3767+
netdev_features_t oper_features = features;
37693768
int err = 0;
37703769

37713770
#define MLX5E_HANDLE_FEATURE(feature, handler) \
3772-
mlx5e_handle_feature(netdev, &oper_features, features, feature, handler)
3771+
mlx5e_handle_feature(netdev, &oper_features, feature, handler)
37733772

37743773
err |= MLX5E_HANDLE_FEATURE(NETIF_F_LRO, set_feature_lro);
37753774
err |= MLX5E_HANDLE_FEATURE(NETIF_F_GRO_HW, set_feature_hw_gro);

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1441,6 +1441,8 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
14411441
metadata);
14421442
if (err)
14431443
goto err_out;
1444+
1445+
attr->action |= MLX5_FLOW_CONTEXT_ACTION_MOD_HDR;
14441446
}
14451447
}
14461448

0 commit comments

Comments
 (0)