Quellcode durchsuchen

IPoIB: fix error handling in ipoib_open

If ipoib_ib_dev_up() fails after ipoib_ib_dev_open() is called, then
ipoib_ib_dev_stop() needs to be called to clean up.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Roland Dreier vor 19 Jahren
Ursprung
Commit
267ee88ed3
1 geänderte Dateien mit 3 neuen und 1 gelöschten Zeilen
  1. 3 1
      drivers/infiniband/ulp/ipoib/ipoib_main.c

+ 3 - 1
drivers/infiniband/ulp/ipoib/ipoib_main.c

@@ -94,8 +94,10 @@ int ipoib_open(struct net_device *dev)
 	if (ipoib_ib_dev_open(dev))
 		return -EINVAL;
 
-	if (ipoib_ib_dev_up(dev))
+	if (ipoib_ib_dev_up(dev)) {
+		ipoib_ib_dev_stop(dev);
 		return -EINVAL;
+	}
 
 	if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) {
 		struct ipoib_dev_priv *cpriv;