diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2013-06-24 17:45:02 -0700 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2013-06-24 17:45:02 -0700 |
commit | 42cba6e27c4cddc4df701c597dbfa666e1c013c8 (patch) | |
tree | 6fe38f37a79391bce3db56f311d0f3b83711fad0 /drivers/net/macvlan.c | |
parent | f722406faae2d073cc1d01063d1123c35425939e (diff) | |
parent | 2699339361a9bacb3fa663e6b8981a040cfca4ee (diff) | |
download | blackbird-op-linux-42cba6e27c4cddc4df701c597dbfa666e1c013c8.tar.gz blackbird-op-linux-42cba6e27c4cddc4df701c597dbfa666e1c013c8.zip |
Merge branch 'timers/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into remove-local-timers
Diffstat (limited to 'drivers/net/macvlan.c')
-rw-r--r-- | drivers/net/macvlan.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index d5a141c7c4e7..1c502bb0c916 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -229,7 +229,8 @@ static rx_handler_result_t macvlan_handle_frame(struct sk_buff **pskb) } if (port->passthru) - vlan = list_first_entry(&port->vlans, struct macvlan_dev, list); + vlan = list_first_or_null_rcu(&port->vlans, + struct macvlan_dev, list); else vlan = macvlan_hash_lookup(port, eth->h_dest); if (vlan == NULL) @@ -814,7 +815,7 @@ int macvlan_common_newlink(struct net *src_net, struct net_device *dev, if (err < 0) goto upper_dev_unlink; - list_add_tail(&vlan->list, &port->vlans); + list_add_tail_rcu(&vlan->list, &port->vlans); netif_stacked_transfer_operstate(lowerdev, dev); return 0; @@ -842,7 +843,7 @@ void macvlan_dellink(struct net_device *dev, struct list_head *head) { struct macvlan_dev *vlan = netdev_priv(dev); - list_del(&vlan->list); + list_del_rcu(&vlan->list); unregister_netdevice_queue(dev, head); netdev_upper_dev_unlink(vlan->lowerdev, dev); } |