linux/drivers/net
David Woodhouse 9a5d2bd99e ppp: Fix race condition with queue start/stop
Commit e675f0cc9a ("ppp: Don't stop and
restart queue on every TX packet") introduced a race condition which
could leave the net queue stopped even when the channel is no longer
busy. By calling netif_stop_queue() from ppp_start_xmit(), based on the
return value from ppp_xmit_process() but *after* all the locks have been
dropped, we could potentially do so *after* the channel has actually
finished transmitting and attempted to re-wake the queue.

Fix this by moving the netif_stop_queue() into ppp_xmit_process() under
the xmit lock. I hadn't done this previously, because it gets called
from other places than ppp_start_xmit(). But I now think it's the better
option. The net queue *should* be stopped if the channel becomes
congested due to writes from pppd, anyway.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-04-13 13:06:47 -04:00
..
appletalk Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
arcnet Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
bonding bonding: properly unset current_arp_slave on slave link up 2012-04-05 19:07:59 -04:00
caif caif_hsi: use dev_dbg not dev_err for reporting 2012-04-13 11:01:44 -04:00
can Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
cris Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
dsa
ethernet Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2012-04-06 17:56:20 -07:00
fddi
hamradio Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hippi Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hyperv net/hyperv: Fix the code handling tx busy 2012-03-19 17:27:06 -04:00
irda ARM: sa11x0: fix build errors from DMA engine API updates 2012-03-30 11:46:20 +01:00
phy phy:icplus:fix Auto Power Saving in ip101a_config_init. 2012-04-03 18:48:58 -04:00
plip Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ppp ppp: Fix race condition with queue start/stop 2012-04-13 13:06:47 -04:00
slip Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
team
tokenring Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
usb net: usb: cdc_eem: fix mtu 2012-04-01 23:32:35 -04:00
vmxnet3
wan Documentation: remove references to /etc/modprobe.conf 2012-03-30 16:03:15 -07:00
wimax Merge branch 'akpm' (Andrew's patch-bomb) 2012-04-05 15:30:34 -07:00
wireless rtlwifi: Add missing DMA buffer unmapping for PCI drivers 2012-04-11 15:01:45 -04:00
xen-netback
dummy.c
eql.c eql: dont rely on HZ=100 2012-03-27 22:45:26 -04:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c
rionet.c rionet: fix page allocation order of rionet_active 2012-04-01 23:17:16 -04:00
sb1000.c
Space.c
sungem_phy.c
tun.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
veth.c
virtio_net.c net: Fix misplaced parenthesis in virtio_net.c 2012-04-13 11:01:44 -04:00
xen-netfront.c Two fixes for regressions: 2012-04-06 17:54:53 -07:00