android_kernel_xiaomi_sm8350/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
ethtool.c
fib_rules.c
filter.c
flow.c
gen_estimator.c Revert "pkt_sched: Protect gen estimators under est_lock." 2008-08-18 22:32:10 -07:00
gen_stats.c
iovec.c net: Use standard structures for generic socket address structures. 2008-07-19 22:35:47 -07:00
kmap_skb.h
link_watch.c net: Clean up explicit ->tx_queue references in link watch. 2008-07-08 23:01:06 -07:00
Makefile
neighbour.c net: fix missing pneigh entries in the neighbor seq_file code 2008-08-03 01:10:55 -07:00
net_namespace.c
net-sysfs.c wext: make sysfs bits optional and deprecate them 2008-07-14 14:52:57 -04:00
net-sysfs.h
netevent.c
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
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