diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 102bac9..ae692f1 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -977,6 +977,7 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
 				goto retry;
 			}
 
+			kfree(entries);
 			goto no_msi;
 		}
 
@@ -993,7 +994,7 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
 no_msi:
 	dev->caps.num_comp_vectors = 1;
 
-	for (i = 0; i < 2; ++i)
+	for (i = 0; i < nreq; ++i)
 		priv->eq_table.eq[i].irq = dev->pdev->irq;
 }
 
