summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx4/intf.c
diff options
context:
space:
mode:
authorMoni Shoua2015-07-30 17:33:28 +0200
committerDoug Ledford2015-08-31 00:12:20 +0200
commit79857cd31fe70145ff007d4e968557af342c8ccd (patch)
tree16eb5651b5b51e6619cf2010fe14bad625207555 /drivers/net/ethernet/mellanox/mlx4/intf.c
parentIB/core: Add RoCE table bonding support (diff)
downloadkernel-qcow2-linux-79857cd31fe70145ff007d4e968557af342c8ccd.tar.gz
kernel-qcow2-linux-79857cd31fe70145ff007d4e968557af342c8ccd.tar.xz
kernel-qcow2-linux-79857cd31fe70145ff007d4e968557af342c8ccd.zip
net/mlx4: Postpone the registration of net_device
The mlx4 network driver was registered in the context of the 'add' function of the core driver (called when HW should be registered). This makes the netdev event NETDEV_REGISTER to be sent in a context where the answer to get_protocol_dev() callback returns NULL. This may be confusing to listeners of netdev events. This patch is a preparation to the patch that implements the get_netdev() callback in the IB/mlx4 driver. Signed-off-by: Moni Shoua <monis@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/intf.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/intf.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/intf.c b/drivers/net/ethernet/mellanox/mlx4/intf.c
index 0d80aed59043..0472941af820 100644
--- a/drivers/net/ethernet/mellanox/mlx4/intf.c
+++ b/drivers/net/ethernet/mellanox/mlx4/intf.c
@@ -63,8 +63,11 @@ static void mlx4_add_device(struct mlx4_interface *intf, struct mlx4_priv *priv)
spin_lock_irq(&priv->ctx_lock);
list_add_tail(&dev_ctx->list, &priv->ctx_list);
spin_unlock_irq(&priv->ctx_lock);
+ if (intf->activate)
+ intf->activate(&priv->dev, dev_ctx->context);
} else
kfree(dev_ctx);
+
}
static void mlx4_remove_device(struct mlx4_interface *intf, struct mlx4_priv *priv)