Ver código fonte

IPoIB: Fix error path memory leak

Clean up properly if ib_query_pkey() or ib_query_gid() fail.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Eli Cohen 17 anos atrás
pai
commit
ca6de177ac
1 arquivos alterados com 2 adições e 2 exclusões
  1. 2 2
      drivers/infiniband/ulp/ipoib/ipoib_main.c

+ 2 - 2
drivers/infiniband/ulp/ipoib/ipoib_main.c

@@ -1083,7 +1083,7 @@ static struct net_device *ipoib_add_port(const char *format,
 	if (result) {
 	if (result) {
 		printk(KERN_WARNING "%s: ib_query_pkey port %d failed (ret = %d)\n",
 		printk(KERN_WARNING "%s: ib_query_pkey port %d failed (ret = %d)\n",
 		       hca->name, port, result);
 		       hca->name, port, result);
-		goto alloc_mem_failed;
+		goto device_init_failed;
 	}
 	}
 
 
 	/*
 	/*
@@ -1099,7 +1099,7 @@ static struct net_device *ipoib_add_port(const char *format,
 	if (result) {
 	if (result) {
 		printk(KERN_WARNING "%s: ib_query_gid port %d failed (ret = %d)\n",
 		printk(KERN_WARNING "%s: ib_query_gid port %d failed (ret = %d)\n",
 		       hca->name, port, result);
 		       hca->name, port, result);
-		goto alloc_mem_failed;
+		goto device_init_failed;
 	} else
 	} else
 		memcpy(priv->dev->dev_addr + 4, priv->local_gid.raw, sizeof (union ib_gid));
 		memcpy(priv->dev->dev_addr + 4, priv->local_gid.raw, sizeof (union ib_gid));