summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland Dreier <rolandd@cisco.com>2006-05-09 22:54:59 -0700
committerRoland Dreier <rolandd@cisco.com>2006-05-09 22:54:59 -0700
commit5941d079f2c3bdf0dffed1afb8941678fcd0bcb7 (patch)
treeba07f5ef258f51e095d0bc3fa77d03321b8866a2
parenta3285aa4eecd722508dab01c4932b11b4ba80134 (diff)
downloadlinux-3.10-5941d079f2c3bdf0dffed1afb8941678fcd0bcb7.tar.gz
linux-3.10-5941d079f2c3bdf0dffed1afb8941678fcd0bcb7.tar.bz2
linux-3.10-5941d079f2c3bdf0dffed1afb8941678fcd0bcb7.zip
IPoIB: Free child interfaces properly
When deleting a child interface with a non-default P_Key via /sys/class/net/ibX/delete_child, the interface must be freed with free_netdev() (rather than kfree() on the private data). Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_vlan.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_vlan.c b/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
index 4ca175553f9..f887780e809 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
@@ -158,10 +158,8 @@ int ipoib_vlan_delete(struct net_device *pdev, unsigned short pkey)
if (priv->pkey == pkey) {
unregister_netdev(priv->dev);
ipoib_dev_cleanup(priv->dev);
-
list_del(&priv->list);
-
- kfree(priv);
+ free_netdev(priv->dev);
ret = 0;
break;