diff options
author | David S. Miller <davem@davemloft.net> | 2013-02-08 18:02:14 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-02-08 18:02:14 -0500 |
commit | fd5023111cf720db890ef34f305ac5d427e690a0 (patch) | |
tree | 4d21e9a02bfbdafe5fc598af0755db791238dbe7 /drivers/net/xen-netback/interface.c | |
parent | 8b9a4d56866e0dca6ae886ed9bff777e50d0b70c (diff) | |
parent | 836dc9e3fbbab0c30aa6e664417225f5c1fb1c39 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Synchronize with 'net' in order to sort out some l2tp, wireless, and
ipv6 GRE fixes that will be built on top of in 'net-next'.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
-rw-r--r-- | drivers/net/xen-netback/interface.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index f733cae3d4b6..fc1b8d78f4bc 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c | |||
@@ -345,17 +345,22 @@ err: | |||
345 | return err; | 345 | return err; |
346 | } | 346 | } |
347 | 347 | ||
348 | void xenvif_disconnect(struct xenvif *vif) | 348 | void xenvif_carrier_off(struct xenvif *vif) |
349 | { | 349 | { |
350 | struct net_device *dev = vif->dev; | 350 | struct net_device *dev = vif->dev; |
351 | if (netif_carrier_ok(dev)) { | 351 | |
352 | rtnl_lock(); | 352 | rtnl_lock(); |
353 | netif_carrier_off(dev); /* discard queued packets */ | 353 | netif_carrier_off(dev); /* discard queued packets */ |
354 | if (netif_running(dev)) | 354 | if (netif_running(dev)) |
355 | xenvif_down(vif); | 355 | xenvif_down(vif); |
356 | rtnl_unlock(); | 356 | rtnl_unlock(); |
357 | xenvif_put(vif); | 357 | xenvif_put(vif); |
358 | } | 358 | } |
359 | |||
360 | void xenvif_disconnect(struct xenvif *vif) | ||
361 | { | ||
362 | if (netif_carrier_ok(vif->dev)) | ||
363 | xenvif_carrier_off(vif); | ||
359 | 364 | ||
360 | atomic_dec(&vif->refcnt); | 365 | atomic_dec(&vif->refcnt); |
361 | wait_event(vif->waiting_to_free, atomic_read(&vif->refcnt) == 0); | 366 | wait_event(vif->waiting_to_free, atomic_read(&vif->refcnt) == 0); |