From: Eric Dumazet <eric.duma...@gmail.com>
Date: Mon, 13 Jun 2016 11:33:32 -0700

> From: Eric Dumazet <eduma...@google.com>
> 
> Now prio_init() can return -ENOMEM, it also has to make sure
> any allocated qdiscs are freed, since the caller (qdisc_create()) wont
> call ->destroy() handler for us.
> 
> More generally, we want a transactional behavior for "tc qdisc
> change ...", so prio_tune() should not make modifications if
> any error is returned.
> 
> It means that we must validate parameters and allocate missing qdisc(s)
> before taking root qdisc lock exactly once, to not leave the prio qdisc
> in an intermediate state.
> 
> Fixes: cbdf45116478 ("net_sched: prio: properly report out of memory errors")
> Signed-off-by: Eric Dumazet <eduma...@google.com>
> Reported-by: Cong Wang <xiyou.wangc...@gmail.com>

Applied.

Reply via email to