kernel-ark/net/core
David S. Miller 195648bbc5 pkt_sched: Prevent livelock in TX queue running.
If dev_deactivate() is trying to quiesce the queue, it
is theoretically possible for another cpu to livelock
trying to process that queue.  This happens because
dev_deactivate() grabs the queue spinlock as it checks
the queue state, whereas net_tx_action() does a trylock
and reschedules the qdisc if it hits the lock.

This breaks the livelock by adding a check on
__QDISC_STATE_DEACTIVATED to net_tx_action() when
the trylock fails.

Based upon feedback from Herbert Xu and Jarek Poplawski.

Signed-off-by: David S. Miller <davem@davemloft.net>
2008-08-19 04:00:36 -07:00
..
datagram.c net: skb_copy_datagram_from_iovec() 2008-08-15 19:52:30 -07:00
dev_mcast.c netdev: Do not use TX lock to protect address lists. 2008-07-15 00:15:08 -07:00
dev.c pkt_sched: Prevent livelock in TX queue running. 2008-08-19 04:00:36 -07:00
dst.c [NET]: uninline dst_release 2008-03-27 17:53:31 -07:00
ethtool.c netdev: Add support for rx flow hash configuration, using ethtool. 2008-07-02 03:47:41 -07:00
fib_rules.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-07-05 23:08:07 -07:00
filter.c net: Tyop of sk_filter() comment 2008-07-01 19:55:40 -07:00
flow.c smp_call_function: get rid of the unused nonatomic/retry argument 2008-06-26 11:24:35 +02:00
gen_estimator.c Revert "pkt_sched: Protect gen estimators under est_lock." 2008-08-18 22:32:10 -07:00
gen_stats.c [NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API 2008-01-28 15:11:10 -08:00
iovec.c net: Use standard structures for generic socket address structures. 2008-07-19 22:35:47 -07:00
kmap_skb.h [PATCH] severing skbuff.h -> highmem.h 2006-12-04 02:00:29 -05:00
link_watch.c net: Clean up explicit ->tx_queue references in link watch. 2008-07-08 23:01:06 -07:00
Makefile [NET]: Fix running without sysfs 2007-10-10 16:52:46 -07:00
neighbour.c net: fix missing pneigh entries in the neighbor seq_file code 2008-08-03 01:10:55 -07:00
net_namespace.c netns: Don't receive new packets in a dead network namespace. 2008-06-20 22:16:51 -07:00
net-sysfs.c wext: make sysfs bits optional and deprecate them 2008-07-14 14:52:57 -04:00
net-sysfs.h netns: Fix device renaming for sysfs 2008-05-02 17:00:58 -07:00
netevent.c [NET]: net/core/netevent.c should #include <net/netevent.h> 2007-07-05 17:40:27 -07:00
netpoll.c netdev: Fix lockdep warnings in multiqueue configurations. 2008-07-31 16:58:50 -07:00
pktgen.c pktgen: prevent pktgen from using bad tx queue 2008-08-13 15:16:00 -07:00
request_sock.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
rtnetlink.c netdev: Allocate multiple queues for TX. 2008-07-17 19:21:00 -07:00
scm.c [NET]: Fix function put_cmsg() which may cause usr application memory overflow 2007-12-20 14:36:44 -08:00
skbuff.c net: Preserve netfilter attributes in skb_gso_segment using __copy_skb_header 2008-08-15 19:51:36 -07:00
sock.c net: Update entry in af_family_clock_key_strings 2008-07-23 14:06:04 -07:00
stream.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
sysctl_net_core.c printk ratelimiting rewrite 2008-07-25 10:53:29 -07:00
user_dma.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-07-26 20:17:56 -07:00
utils.c printk ratelimiting rewrite 2008-07-25 10:53:29 -07:00