On Sun, Jun 12, 2016 at 4:21 PM, Eric Dumazet <eric.duma...@gmail.com> wrote: > + struct Qdisc *child; > + > + if (q->queues[i] != &noop_qdisc) > + continue; > + > + child = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, > + TC_H_MAKE(sch->handle, i + 1)); > + if (!child) > + return -ENOMEM;
Since this is inside a loop, shouldn't we kfree the previous child creations when we fail? > + sch_tree_lock(sch); > + q->queues[i] = child; > + sch_tree_unlock(sch); > } > return 0; > } > >