Skip to content
  • Petr Machata's avatar
    net: sch_prio: When ungrafting, replace with FIFO · 240ce7f6
    Petr Machata authored
    When a child Qdisc is removed from one of the PRIO Qdisc's bands, it is
    replaced unconditionally by a NOOP qdisc. As a result, any traffic hitting
    that band gets dropped. That is incorrect--no Qdisc was explicitly added
    when PRIO was created, and after removal, none should have to be added
    either.
    
    Fix PRIO by first attempting to create a default Qdisc and only falling
    back to noop when that fails. This pattern of attempting to create an
    invisible FIFO, using NOOP only as a fallback, is also seen in other
    Qdiscs.
    
    Fixes: 1da177e4
    
     ("Linux-2.6.12-rc2")
    Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
    Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    240ce7f6