net/mlx4_core: need to call close fw if alloc icm is called twice
authorCarol Soto <clsoto@linux.vnet.ibm.com>
Tue, 2 Jun 2015 21:07:24 +0000 (16:07 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Jun 2015 03:12:58 +0000 (20:12 -0700)
If mlx4_enable_sriov is called by adapter without this
feature MLX4_DEV_CAP_FLAG2_SYS_EQS then during this path the function alloc
icm is called twice without freeing the structures from the first time.

Acked-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Carol L Soto <clsoto@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/main.c

index 9485cbef5166ce386d5c58510d1a2375ff236eb3..7d57777e65c53625c5edd924072cbceacb58340e 100644 (file)
@@ -2976,6 +2976,7 @@ slave_start:
                                                                  existing_vfs,
                                                                  reset_flow);
 
+                               mlx4_close_fw(dev);
                                mlx4_cmd_cleanup(dev, MLX4_CMD_CLEANUP_ALL);
                                dev->flags = dev_flags;
                                if (!SRIOV_VALID_STATE(dev->flags)) {