RDMA/ipoib: Print a message if only child interface is UP
authorJack Wang <jinpu.wang@ionos.com>
Thu, 8 Apr 2021 09:32:15 +0000 (11:32 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 13 Apr 2021 23:06:34 +0000 (20:06 -0300)
When "enhanced IPoIB" is enabled for CX-5 devices it requires the parent
device to be UP, otherwise the child devices won't work.

Thus add a debug message to give admin a hint when only the child
interface is UP but parent interface is not.

Link: https://lore.kernel.org/r/20210408093215.24023-1-jinpu.wang@ionos.com
Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/ulp/ipoib/ipoib_main.c

index 8ca80e27339ae5c3771141b3096a9ad0f7e41226..bbb18087fdab073b2d19c601a4bab5caf40e03d9 100644 (file)
@@ -164,8 +164,13 @@ int ipoib_open(struct net_device *dev)
                        dev_change_flags(cpriv->dev, flags | IFF_UP, NULL);
                }
                up_read(&priv->vlan_rwsem);
-       }
+       } else if (priv->parent) {
+               struct ipoib_dev_priv *ppriv = ipoib_priv(priv->parent);
 
+               if (!test_bit(IPOIB_FLAG_ADMIN_UP, &ppriv->flags))
+                       ipoib_dbg(priv, "parent device %s is not up, so child device may be not functioning.\n",
+                                 ppriv->dev->name);
+       }
        netif_start_queue(dev);
 
        return 0;