From 5cc6f314d9eab7975ddaf3dd89366aaf54c234e1 Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Thu, 4 Nov 2010 16:20:32 -0700 Subject: [PATCH] datapath: Directly use free_netdev for internal devices. Currently internal devices register a destructor function which simply calls free_netdev. Instead we can simply set the destructor to free_netdev. In addition to being cleaner, it is also a bug fix because the module could be unloaded before the destructor is called, making a call into our code illegal. Signed-off-by: Jesse Gross Acked-by: Ben Pfaff --- datapath/vport-internal_dev.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/datapath/vport-internal_dev.c b/datapath/vport-internal_dev.c index 84b90b57..11221333 100644 --- a/datapath/vport-internal_dev.c +++ b/datapath/vport-internal_dev.c @@ -148,11 +148,6 @@ static int internal_dev_change_mtu(struct net_device *netdev, int new_mtu) return 0; } -static void internal_dev_free(struct net_device *netdev) -{ - free_netdev(netdev); -} - static int internal_dev_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { if (dp_ioctl_hook) @@ -189,7 +184,7 @@ static void do_setup(struct net_device *netdev) netdev->change_mtu = internal_dev_change_mtu; #endif - netdev->destructor = internal_dev_free; + netdev->destructor = free_netdev; SET_ETHTOOL_OPS(netdev, &internal_dev_ethtool_ops); netdev->tx_queue_len = 0; -- 2.30.2