Skip to content

Commit

Permalink
mlx4_core: Initialize ctx_list and ctx_lock earlier
Browse files Browse the repository at this point in the history
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 <rolandd@cisco.com>
  • Loading branch information
Roland Dreier committed Jun 7, 2007
1 parent 09360d5 commit b581401
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 3 deletions.
3 changes: 0 additions & 3 deletions drivers/net/mlx4/intf.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

mutex_lock(&intf_mutex);

list_add_tail(&priv->dev_list, &dev_list);
Expand Down
2 changes: 2 additions & 0 deletions drivers/net/mlx4/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit b581401

Please sign in to comment.