linux/include
Patrick McHardy 43effa1e57 [NET_SCHED]: Fix endless loops caused by inaccurate qlen counters (part 1)
There are multiple problems related to qlen adjustment that can lead
to an upper qdisc getting out of sync with the real number of packets
queued, leading to endless dequeueing attempts by the upper layer code.

All qdiscs must maintain an accurate q.qlen counter. There are basically
two groups of operations affecting the qlen: operations that propagate
down the tree (enqueue, dequeue, requeue, drop, reset) beginning at the
root qdisc and operations only affecting a subtree or single qdisc
(change, graft, delete class). Since qlen changes during operations from
the second group don't propagate to ancestor qdiscs, their qlen values
become desynchronized.

This patch adds a function to propagate qlen changes up the qdisc tree,
optionally calling a callback function to perform qdisc-internal
maintenance when the child qdisc becomes empty. The follow-up patches
will convert all qdiscs to use this function where necessary.

Noticed by Timo Steinbach <tsteinbach@astaro.com>.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-12-02 21:31:42 -08:00
..
acpi ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
asm-alpha [NET]: Alpha checksum annotations and cleanups. 2006-12-02 21:23:01 -08:00
asm-arm [NET]: ARM checksum annotations and cleanups. 2006-12-02 21:23:15 -08:00
asm-arm26 [NET]: ARM26 checksum annotations and cleanups. 2006-12-02 21:23:16 -08:00
asm-avr32 [NET]: AVR32 checksum annotations and cleanups. 2006-12-02 21:23:18 -08:00
asm-cris [NET]: Cris checksum annotations and cleanups. 2006-12-02 21:23:02 -08:00
asm-frv [NET]: FRV checksum annotations. 2006-12-02 21:23:03 -08:00
asm-generic Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-h8300 [NET]: H8300 checksum annotations and cleanups. 2006-12-02 21:23:04 -08:00
asm-i386 [NET]: I386 checksum annotations and cleanups. 2006-12-02 21:23:19 -08:00
asm-ia64 [NET]: IA64 checksum annotations and cleanups. 2006-12-02 21:23:05 -08:00
asm-m32r [NET]: M32R checksum annotations and cleanups. 2006-12-02 21:23:06 -08:00
asm-m68k [NET]: M68K checksum annotations and cleanups. 2006-12-02 21:23:07 -08:00
asm-m68knommu [NET]: M68Knommu checksum annotations and cleanups. 2006-12-02 21:23:08 -08:00
asm-mips [NET]: MIPS checksum annotations and cleanups. 2006-12-02 21:23:09 -08:00
asm-parisc [NET]: PARISC checksum annotations and cleanups. 2006-12-02 21:23:10 -08:00
asm-powerpc [NET]: POWERPC checksum annotations and cleanups. 2006-12-02 21:23:20 -08:00
asm-ppc Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-s390 [NET]: S390 checksum annotations and cleanups. 2006-12-02 21:23:21 -08:00
asm-sh [NET]: SH checksum annotations and cleanups. 2006-12-02 21:23:22 -08:00
asm-sh64 [NET]: SH64 checksum annotations and cleanups. 2006-12-02 21:23:11 -08:00
asm-sparc [NET]: SPARC checksum annotations and cleanups. 2006-12-02 21:23:22 -08:00
asm-sparc64 [NET]: SPARC64 checksum annotations and cleanups. 2006-12-02 21:23:23 -08:00
asm-um Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-v850 [NET]: V850 checksum annotations and cleanups. 2006-12-02 21:23:13 -08:00
asm-x86_64 [NET]: X86_64 checksum annotations and cleanups. 2006-12-02 21:23:14 -08:00
asm-xtensa [NET]: XTENSA checksum annotations and cleanups. 2006-12-02 21:23:24 -08:00
crypto [CRYPTO] digest: Added user API for new hash type 2006-09-21 11:46:17 +10:00
keys
linux [NETFILTER]: ebtables: add --snap-arp option 2006-12-02 21:31:32 -08:00
math-emu
media V4L/DVB (4666): Ensure the WM8775 driver is loaded generically for any board. 2006-10-03 15:13:48 -03:00
mtd Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2006-10-01 17:55:53 +01:00
net [NET_SCHED]: Fix endless loops caused by inaccurate qlen counters (part 1) 2006-12-02 21:31:42 -08:00
pcmcia
rdma IB/cm: Fix automatic path migration support 2006-11-29 15:33:10 -08:00
rxrpc
scsi [PATCH] add missing libsas include to fix s390 compilation. 2006-11-28 17:26:50 -08:00
sound Driver core: convert sound core to use struct device 2006-12-01 14:52:01 -08:00
video fix file specification in comments 2006-10-03 23:01:26 +02:00
Kbuild [HEADERS] One line per header in Kbuild files to reduce conflicts 2006-09-19 12:43:58 +01:00