]> Pileus Git - ~andy/linux/commitdiff
team: use kfree_rcu instead of synchronize_rcu in team_port_dev
authorJiri Pirko <jiri@resnulli.us>
Mon, 10 Jun 2013 15:42:24 +0000 (17:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Jun 2013 10:05:54 +0000 (03:05 -0700)
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/team/team.c
include/linux/if_team.h

index 9cbe09df7765c73af36e64bf53bec33e0d663fb5..488ed4f535e50f6a0047d9a27e68a54b6ff9b369 100644 (file)
@@ -1192,8 +1192,7 @@ static int team_port_del(struct team *team, struct net_device *port_dev)
 
        team_port_set_orig_dev_addr(port);
        dev_set_mtu(port_dev, port->orig.mtu);
-       synchronize_rcu();
-       kfree(port);
+       kfree_rcu(port, rcu);
        netdev_info(dev, "Port device %s removed\n", portname);
        __team_compute_features(team);
 
index 4474557904f69eef849b329b41b91ba4f72bb678..7054595247067e45451d482ad0438a203a6b1b50 100644 (file)
@@ -69,6 +69,7 @@ struct team_port {
        s32 priority; /* lower number ~ higher priority */
        u16 queue_id;
        struct list_head qom_list; /* node in queue override mapping list */
+       struct rcu_head rcu;
        long mode_priv[0];
 };