diff options
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) | |||
| 603 | return err; | 603 | return err; |
| 604 | } | 604 | } |
| 605 | 605 | ||
| 606 | static void macvlan_port_rcu_free(struct rcu_head *head) | ||
| 607 | { | ||
| 608 | struct macvlan_port *port; | ||
| 609 | |||
| 610 | port = container_of(head, struct macvlan_port, rcu); | ||
| 611 | kfree(port); | ||
| 612 | } | ||
| 613 | |||
| 614 | static void macvlan_port_destroy(struct net_device *dev) | 606 | static void macvlan_port_destroy(struct net_device *dev) |
| 615 | { | 607 | { |
| 616 | struct macvlan_port *port = macvlan_port_get(dev); | 608 | struct macvlan_port *port = macvlan_port_get(dev); |
| 617 | 609 | ||
| 618 | dev->priv_flags &= ~IFF_MACVLAN_PORT; | 610 | dev->priv_flags &= ~IFF_MACVLAN_PORT; |
| 619 | netdev_rx_handler_unregister(dev); | 611 | netdev_rx_handler_unregister(dev); |
| 620 | call_rcu(&port->rcu, macvlan_port_rcu_free); | 612 | kfree_rcu(port, rcu); |
| 621 | } | 613 | } |
| 622 | 614 | ||
| 623 | static int macvlan_validate(struct nlattr *tb[], struct nlattr *data[]) | 615 | static int macvlan_validate(struct nlattr *tb[], struct nlattr *data[]) |
