Commit:     b581401ed0cc83a4483ed39c00a14a60bacecc3a
Parent:     09360d5408cb641abff0f32a172a3332f02e8e88
Author:     Roland Dreier <[EMAIL PROTECTED]>
AuthorDate: Thu Jun 7 11:51:58 2007 -0700
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Thu Jun 7 11:51:58 2007 -0700

    mlx4_core: Initialize ctx_list and ctx_lock earlier
    We may call mlx4_dispatch_event() before mlx4_register_device() is
    called for a device, because for example a catastrophic error happens
    immediately after we enable interrupts.  Therefore priv->ctx_list and
    priv->ctx_lock need to be initialized earlier.
    This bug was actually exposed by the MSI-X bug that returned IRQ numbers
    to drivers in reverse order, so that the first FW command
    interrupt looked to mlx4 like a catastrophic error.
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
 drivers/net/mlx4/intf.c |    3 ---
 drivers/net/mlx4/main.c |    2 ++
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/mlx4/intf.c b/drivers/net/mlx4/intf.c
index 65854f9..9ae951b 100644
--- a/drivers/net/mlx4/intf.c
+++ b/drivers/net/mlx4/intf.c
@@ -135,9 +135,6 @@ int mlx4_register_device(struct mlx4_dev *dev)
        struct mlx4_priv *priv = mlx4_priv(dev);
        struct mlx4_interface *intf;
-       INIT_LIST_HEAD(&priv->ctx_list);
-       spin_lock_init(&priv->ctx_lock);
        list_add_tail(&priv->dev_list, &dev_list);
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 20b8c0d..d417293 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -787,6 +787,8 @@ static int __devinit mlx4_init_one(struct pci_dev *pdev,
        dev       = &priv->dev;
        dev->pdev = pdev;
+       INIT_LIST_HEAD(&priv->ctx_list);
+       spin_lock_init(&priv->ctx_lock);
         * Now reset the HCA before we touch the PCI capabilities or
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to