From 9a1391cbc808c36f71fe52dfac850dd4b727452e Mon Sep 17 00:00:00 2001 From: Yuval Shaia Date: Wed, 10 May 2017 02:32:23 -0400 Subject: [PATCH] IP/ipoib: Move initialization of ACL instances table to device init phase Initializing the table in dev-open cause a server crash when device is still not "UP" and user is trying to manipulate the table. Orabug: 26175743 Signed-off-by: Yuval Shaia Reviewed-by: Qing Huang Signed-off-by: Brian Maly --- drivers/infiniband/ulp/ipoib/ipoib_acl.c | 4 ++++ drivers/infiniband/ulp/ipoib/ipoib_cm.c | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/ulp/ipoib/ipoib_acl.c b/drivers/infiniband/ulp/ipoib/ipoib_acl.c index 7b119583959fc..c357105d0d3d3 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_acl.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_acl.c @@ -495,6 +495,10 @@ void ipoib_init_acl(struct net_device *dev) struct ib_cm_dpp dpp; struct ipoib_dev_priv *priv = netdev_priv(dev); + INIT_RADIX_TREE(&priv->instances_acls.instances, GFP_KERNEL); + priv->instances_acls.list_count = 0; + mutex_init(&priv->instances_acls.lock); + ipoib_dbg(priv, "Initializing ACL for device %s\n", dev->name); ib_cm_acl_init(&priv->acl); ib_cm_dpp_init(&dpp, priv->ca, priv->port, priv->pkey); diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index cafa137bcf0da..a7679db754d37 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c @@ -970,10 +970,6 @@ int ipoib_cm_dev_open(struct net_device *dev) goto err_cm; } - INIT_RADIX_TREE(&priv->instances_acls.instances, GFP_KERNEL); - priv->instances_acls.list_count = 0; - mutex_init(&priv->instances_acls.lock); - ret = ib_cm_listen(priv->cm.id, cpu_to_be64(IPOIB_CM_IETF_ID | priv->qp->qp_num), 0, NULL); if (ret) { -- 2.50.1