Re: [PATCH net] net_sched: prio: rollback allocations if prio_init() fails

2016-06-13 Thread Cong Wang
On Mon, Jun 13, 2016 at 10:27 AM, Eric Dumazet wrote: > On Mon, 2016-06-13 at 10:13 -0700, Eric Dumazet wrote: > >> Presumably we should commit changes on qdisc only if the whole >> ->change() succeeded, but I guess lot of qdisc are buggy in this >> respect. I suppose so, it should work like a tr

Re: [PATCH net] net_sched: prio: rollback allocations if prio_init() fails

2016-06-13 Thread Eric Dumazet
On Mon, 2016-06-13 at 10:13 -0700, Eric Dumazet wrote: > Presumably we should commit changes on qdisc only if the whole > ->change() succeeded, but I guess lot of qdisc are buggy in this > respect. I'll post a v2 fixing this issue as well.

Re: [PATCH net] net_sched: prio: rollback allocations if prio_init() fails

2016-06-13 Thread Eric Dumazet
On Mon, 2016-06-13 at 09:28 -0700, Cong Wang wrote: > On Sun, Jun 12, 2016 at 10:03 PM, Eric Dumazet wrote: > > From: Eric Dumazet > > > > Now prio_init() can return -ENOMEM, it also has to make sure > > any allocated qdisc are freed, since the caller (qdisc_create()) wont > > call ->destroy() ha

Re: [PATCH net] net_sched: prio: rollback allocations if prio_init() fails

2016-06-13 Thread Cong Wang
On Sun, Jun 12, 2016 at 10:03 PM, Eric Dumazet wrote: > From: Eric Dumazet > > Now prio_init() can return -ENOMEM, it also has to make sure > any allocated qdisc are freed, since the caller (qdisc_create()) wont > call ->destroy() handler for us. But prio_tune() is called by ->change() too, so

[PATCH net] net_sched: prio: rollback allocations if prio_init() fails

2016-06-12 Thread Eric Dumazet
From: Eric Dumazet Now prio_init() can return -ENOMEM, it also has to make sure any allocated qdisc are freed, since the caller (qdisc_create()) wont call ->destroy() handler for us. Fixes: cbdf45116478 ("net_sched: prio: properly report out of memory errors") Signed-off-by: Eric Dumazet Report