From: David S. Miller Date: Tue, 19 Aug 2008 11:00:36 +0000 (-0700) Subject: pkt_sched: Prevent livelock in TX queue running. X-Git-Tag: v2.6.27-rc4~39^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=195648bbc5ae0848e82f771ecf4cd7497054c212;p=pandora-kernel.git 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 --- Reading git-diff-tree failed