]> git.baikalelectronics.ru Git - kernel.git/commit
xen-netfront: call netif_carrier_off() only once when disconnecting
authorDavid Vrabel <david.vrabel@citrix.com>
Wed, 2 Jul 2014 15:09:15 +0000 (16:09 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 8 Jul 2014 18:21:03 +0000 (11:21 -0700)
commita83018e7a32d9daac49f028e816860a1e1b49cca
tree753ea80910d46b4cc41dd1fe1a9dbd592bb09991
parent6167d10909da6a479c65f196c792556f7f168654
xen-netfront: call netif_carrier_off() only once when disconnecting

In xennet_disconnect_backend(), netif_carrier_off() was called once
per queue when it needs to only be called once.

The queue locking around the netif_carrier_off() call looked very
odd. I think they were supposed to synchronize any NAPI instances with
the expectation that no further NAPI instances would be scheduled
because of the carrier being off (see the check in
xennet_rx_interrupt()).  But I can't easily tell if this works
correctly.

Instead, add a napi_synchronize() call after disabling the interrupts.
This is obviously correct as with no Rx interrupts, no further NAPI
instances will be scheduled.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/xen-netfront.c