]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/commitdiff
macvlan,rcu: convert call_rcu(macvlan_port_rcu_free) to kfree_rcu()
authorLai Jiangshan <laijs@cn.fujitsu.com>
Fri, 18 Mar 2011 04:00:07 +0000 (12:00 +0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 8 May 2011 05:51:01 +0000 (22:51 -0700)
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>
drivers/net/macvlan.c

index 78e34e9e4f0082c12baf559ad0a242c2c48f2231..d8e4e69ad0b93f4b606de725b1b7b80e88f3cf54 100644 (file)
@@ -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[])