kernel_optimize_test/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
arcnet
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
cris
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
hippi
hyperv
irda
phy phy:icplus:fix Auto Power Saving in ip101a_config_init. 2012-04-03 18:48:58 -04:00
plip
ppp ppp: Fix race condition with queue start/stop 2012-04-13 13:06:47 -04:00
slip
team
tokenring
usb net: usb: cdc_eem: fix mtu 2012-04-01 23:32:35 -04:00
vmxnet3
wan
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
ifb.c
Kconfig
LICENSE.SRC
loopback.c
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
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