diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c
index 707a7d0d08e1b1f036904ede5a51901549c4598f..299d0184f983c95c1b68d043b1f5d28f0fe329f8 100644
--- a/drivers/net/ethernet/mellanox/mlx4/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c
@@ -1572,6 +1572,7 @@ int mlx4_master_immediate_activate_vlan_qos(struct mlx4_priv *priv,
 					   vp_admin->default_vlan,
 					   &admin_vlan_ix);
 		if (err) {
+			kfree(work);
 			mlx4_warn((&priv->dev),
 				  "No vlan resources slave %d, port %d\n",
 				  slave, port);