]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - rpmsg/rpmsg.git/commitdiff
net/mlx5e: Fix error flow cleanup in mlx5e_tc_tun_create_header_ipv4/6
authorEli Cohen <eli@mellanox.com>
Thu, 31 Oct 2019 07:00:43 +0000 (09:00 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Wed, 20 Nov 2019 20:33:04 +0000 (12:33 -0800)
Be sure to release the neighbour in case of failures after successful
route lookup.

Fixes: 101f4de9dd52 ("net/mlx5e: Move TC tunnel offloading code to separate source file")
Signed-off-by: Eli Cohen <eli@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c

index 13af72556987ffe6ffd5dbf2a32d240a1a545cc0..745ab6cd7c30b78bc2f9325481571b7f9015402b 100644 (file)
@@ -239,12 +239,15 @@ int mlx5e_tc_tun_create_header_ipv4(struct mlx5e_priv *priv,
        if (max_encap_size < ipv4_encap_size) {
                mlx5_core_warn(priv->mdev, "encap size %d too big, max supported is %d\n",
                               ipv4_encap_size, max_encap_size);
-               return -EOPNOTSUPP;
+               err = -EOPNOTSUPP;
+               goto out;
        }
 
        encap_header = kzalloc(ipv4_encap_size, GFP_KERNEL);
-       if (!encap_header)
-               return -ENOMEM;
+       if (!encap_header) {
+               err = -ENOMEM;
+               goto out;
+       }
 
        /* used by mlx5e_detach_encap to lookup a neigh hash table
         * entry in the neigh hash table when a user deletes a rule
@@ -355,12 +358,15 @@ int mlx5e_tc_tun_create_header_ipv6(struct mlx5e_priv *priv,
        if (max_encap_size < ipv6_encap_size) {
                mlx5_core_warn(priv->mdev, "encap size %d too big, max supported is %d\n",
                               ipv6_encap_size, max_encap_size);
-               return -EOPNOTSUPP;
+               err = -EOPNOTSUPP;
+               goto out;
        }
 
        encap_header = kzalloc(ipv6_encap_size, GFP_KERNEL);
-       if (!encap_header)
-               return -ENOMEM;
+       if (!encap_header) {
+               err = -ENOMEM;
+               goto out;
+       }
 
        /* used by mlx5e_detach_encap to lookup a neigh hash table
         * entry in the neigh hash table when a user deletes a rule