mlx4_core: Free catastrophic error MSI-X interrupt with correct dev_id
authorRoland Dreier <rolandd@cisco.com>
Sat, 2 Jun 2007 14:16:02 +0000 (07:16 -0700)
committerRoland Dreier <rolandd@cisco.com>
Thu, 7 Jun 2007 18:51:58 +0000 (11:51 -0700)
We need to pass the same dev_id to free_irq() and request_irq().  When
using MSI-X, the MLX4_EQ_CATAS interrupt uses a different dev_id from
the other interrupts.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/net/mlx4/eq.c

index 0f11adb..27a82ce 100644 (file)
@@ -490,9 +490,11 @@ static void mlx4_free_irqs(struct mlx4_dev *dev)
 
        if (eq_table->have_irq)
                free_irq(dev->pdev->irq, dev);
-       for (i = 0; i < MLX4_NUM_EQ; ++i)
+       for (i = 0; i < MLX4_EQ_CATAS; ++i)
                if (eq_table->eq[i].have_irq)
                        free_irq(eq_table->eq[i].irq, eq_table->eq + i);
+       if (eq_table->eq[MLX4_EQ_CATAS].have_irq)
+               free_irq(eq_table->eq[MLX4_EQ_CATAS].irq, dev);
 }
 
 static int __devinit mlx4_map_clr_int(struct mlx4_dev *dev)