• Florian Westphal's avatar
    net_sched: prio: use qdisc_dequeue_peeked · 3557619f
    Florian Westphal authored
    commit 07bd8df5
    (sch_sfq: fix peek() implementation) changed sfq to use generic
    peek helper.
    
    This makes HFSC complain about a non-work-conserving child qdisc, if
    prio with sfq child is used within hfsc:
    
    hfsc peeks into prio qdisc, which will then peek into sfq.
    returned skb is stashed in sch->gso_skb.
    
    Next, hfsc tries to dequeue from prio, but prio will call sfq dequeue
    directly, which may return NULL instead of previously peeked-at skb.
    
    Have prio call qdisc_dequeue_peeked, so sfq->dequeue() is
    not called in this case.
    
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3557619f
sch_prio.c 8.34 KB