[NET_SCHED] sch_api: fix qdisc_tree_decrease_qlen() loop
TC_H_MAJ(parentid) for root classes is the same as for ingress, and if ingress qdisc is created qdisc_lookup() returns its pointer (without ingress NULL is returned). After this all qdisc_lookups give the same, and we get endless loop. (I don't know how this could hide for so long - it should trigger with every leaf class deleted if it's qdisc isn't empty.) After this fix qdisc_lookup() is omitted both for ingress and root parents, but looking for root is only wasting a little time here... Many thanks to Enrico Demarin for finding a test for catching this bug, which probably bothered quite a lot of admins. Reported-by:Enrico Demarin <enrico@superclick.com>,> Signed-off-by:
Jarek Poplawski <jarkao2@gmail.com> Acked-by:
Patrick McHardy <kaber@trash.net> Signed-off-by:
David S. Miller <davem@davemloft.net>
Loading
-
mentioned in commit 929ff481
-
mentioned in commit 9ae83ef4
-
mentioned in commit 01f28fe7
-
mentioned in commit 2111c0a6
-
mentioned in commit b385eb76
-
mentioned in commit 799d84c5
-
mentioned in commit 4a88640a
-
mentioned in commit a8212246
-
mentioned in commit 1c4f8fb0
-
mentioned in commit e5ee0060
Please sign in to comment