]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
IP/ipoib: Move initialization of ACL instances table to device init phase
authorYuval Shaia <yuval.shaia@oracle.com>
Wed, 10 May 2017 06:32:23 +0000 (02:32 -0400)
committerChuck Anderson <chuck.anderson@oracle.com>
Sun, 18 Jun 2017 19:41:58 +0000 (12:41 -0700)
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 <yuval.shaia@oracle.com>
Reviewed-by: Qing Huang <qing.huang@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/infiniband/ulp/ipoib/ipoib_acl.c
drivers/infiniband/ulp/ipoib/ipoib_cm.c

index 7b119583959fca329237b39646f8d2624ed691c2..c357105d0d3d35d032403f4816ced69ac107d18d 100644 (file)
@@ -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);
index cafa137bcf0daad2a03e7de449a13bd64acadc7e..a7679db754d379680c03ea3de9571ad0873d62ed 100644 (file)
@@ -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) {