Commit 364d1798 authored by Eli Cohen's avatar Eli Cohen Committed by David S. Miller

net/mlx5_core: Fix race on driver load

When events arrive at driver load, the event handler gets called even before
the spinlock and list are initialized. Fix this by moving the initialization
before EQs creation.
Signed-off-by: default avatarEli Cohen <eli@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a158906d
...@@ -864,14 +864,14 @@ static int init_one(struct pci_dev *pdev, ...@@ -864,14 +864,14 @@ static int init_one(struct pci_dev *pdev,
dev->profile = &profile[prof_sel]; dev->profile = &profile[prof_sel];
dev->event = mlx5_core_event; dev->event = mlx5_core_event;
INIT_LIST_HEAD(&priv->ctx_list);
spin_lock_init(&priv->ctx_lock);
err = mlx5_dev_init(dev, pdev); err = mlx5_dev_init(dev, pdev);
if (err) { if (err) {
dev_err(&pdev->dev, "mlx5_dev_init failed %d\n", err); dev_err(&pdev->dev, "mlx5_dev_init failed %d\n", err);
goto out; goto out;
} }
INIT_LIST_HEAD(&priv->ctx_list);
spin_lock_init(&priv->ctx_lock);
err = mlx5_register_device(dev); err = mlx5_register_device(dev);
if (err) { if (err) {
dev_err(&pdev->dev, "mlx5_register_device failed %d\n", err); dev_err(&pdev->dev, "mlx5_register_device failed %d\n", err);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment