From: Yuval Shaia Date: Wed, 10 May 2017 06:32:23 +0000 (-0400) Subject: IP/ipoib: Move initialization of ACL instances table to device init phase X-Git-Tag: v4.1.12-104.0.20170618_1145~18 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=9a1391cbc808c36f71fe52dfac850dd4b727452e;p=users%2Fjedix%2Flinux-maple.git 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 --- diff --git a/drivers/infiniband/ulp/ipoib/ipoib_acl.c b/drivers/infiniband/ulp/ipoib/ipoib_acl.c index 7b119583959f..c357105d0d3d 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 cafa137bcf0d..a7679db754d3 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) {