On Sun, 2016-06-12 at 20:45 -0700, Cong Wang wrote:
> 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?

You're right.

prio_init() needs to do the cleanup, as prio_destroy() wont be called
from qdisc_create()

I am testing a fix with fault injection.

Thanks.


Reply via email to