diff options
author | Lai Jiangshan <laijs@cn.fujitsu.com> | 2011-03-18 12:00:07 +0800 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-05-07 22:51:01 -0700 |
commit | 6e070aecd9e304264a6b8655f49aa7e6db0e55f2 (patch) | |
tree | fc9d4b92d7fc3ca75f88b8e730f0b5f3e2a57e2e /drivers/net/macvlan.c | |
parent | bcec8b6531d481ced35506517af69adb2399f2a4 (diff) | |
download | linux-6e070aecd9e304264a6b8655f49aa7e6db0e55f2.tar.gz linux-6e070aecd9e304264a6b8655f49aa7e6db0e55f2.tar.bz2 linux-6e070aecd9e304264a6b8655f49aa7e6db0e55f2.zip |
macvlan,rcu: convert call_rcu(macvlan_port_rcu_free) to kfree_rcu()
The rcu callback macvlan_port_rcu_free() just calls a kfree(),
so we use kfree_rcu() instead of the call_rcu(macvlan_port_rcu_free).
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'drivers/net/macvlan.c')
-rw-r--r-- | drivers/net/macvlan.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 78e34e9e4f00..d8e4e69ad0b9 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -603,21 +603,13 @@ static int macvlan_port_create(struct net_device *dev) return err; } -static void macvlan_port_rcu_free(struct rcu_head *head) -{ - struct macvlan_port *port; - - port = container_of(head, struct macvlan_port, rcu); - kfree(port); -} - static void macvlan_port_destroy(struct net_device *dev) { struct macvlan_port *port = macvlan_port_get(dev); dev->priv_flags &= ~IFF_MACVLAN_PORT; netdev_rx_handler_unregister(dev); - call_rcu(&port->rcu, macvlan_port_rcu_free); + kfree_rcu(port, rcu); } static int macvlan_validate(struct nlattr *tb[], struct nlattr *data[]) |