On Tue, Apr 14, 2015 at 07:30:03PM +0300, Erez Shitrit wrote: > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c > > index 657b89b..11ea6e2 100644 > > +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c > > @@ -846,7 +846,10 @@ static int ipoib_get_iflink(const struct net_device *dev) > > { > > struct ipoib_dev_priv *priv = netdev_priv(dev); > > > > - return priv->parent->ifindex; > > + if (priv && priv->parent) > > + return priv->parent->ifindex; > > + else > > + return 0; > This will make parent interface to return 0 instead of its own ifindex. > I would suggest write something like that: Agree > + /* parent interface */ > + if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) > + return dev->ifindex; > + > + /* child/vlan interface */ > + if (!priv->parent) > + return -1; Like was said for other drivers, I can't see how parent can be null while IPOIB_FLAG_SUBINTERFACE is set. Drop the last if. Erez, you basically rewrote this, please make a proper patch with the Fixes and Reported-By credit for Honggang. Lets merge this through Dave M's tree right away. Thank you all Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html