Re: [PATCH net-next 02/17] net: sched: protect block state with spinlock

2018-11-13 Thread Vlad Buslov
On Tue 13 Nov 2018 at 10:07, Stefano Brivio wrote: > Vlad, > > On Mon, 12 Nov 2018 09:28:59 -0800 (PST) > David Miller wrote: > >> From: Vlad Buslov >> Date: Mon, 12 Nov 2018 09:55:31 +0200 >> >> > +#define ASSERT_BLOCK_LOCKED(block) >> > \ >> > +

Re: [PATCH net-next 02/17] net: sched: protect block state with spinlock

2018-11-13 Thread Stefano Brivio
Vlad, On Mon, 12 Nov 2018 09:28:59 -0800 (PST) David Miller wrote: > From: Vlad Buslov > Date: Mon, 12 Nov 2018 09:55:31 +0200 > > > +#define ASSERT_BLOCK_LOCKED(block) \ > > + WARN_ONCE(!spin_is_locked(&(block)->lock), \ > > +

Re: [PATCH net-next 02/17] net: sched: protect block state with spinlock

2018-11-12 Thread David Miller
From: Vlad Buslov Date: Mon, 12 Nov 2018 09:55:31 +0200 > +#define ASSERT_BLOCK_LOCKED(block) \ > + WARN_ONCE(!spin_is_locked(&(block)->lock), \ > + "BLOCK: assertion failed at %s (%d)\n", __FILE__, __LINE__) spin_is_locked() is

[PATCH net-next 02/17] net: sched: protect block state with spinlock

2018-11-11 Thread Vlad Buslov
Currently, tcf_block doesn't use any synchronization mechanisms to protect code that manages lifetime of its chains. block->chain_list and multiple variables in tcf_chain that control its lifetime assume external synchronization provided by global rtnl lock. Converting chain reference counting to