Subject: Re: [RFC PATCH 01/15] net: qdisc: use rcu prefix and silence sparse warnings

From: John Fastabend <[email-masked]>
Date: Thu, 01 May 2014 08:20:20 -0700

On 04/30/2014 04:29 PM, Eric Dumazet wrote:
> On Wed, 2014-04-30 at 15:25 -0700, John Fastabend wrote:
>
>> It looks like it except for qdisc_watchdog() which needs an
>> rcu_read_lock() if I'm not mistaken/
>>
>> static enum hrtimer_restart qdisc_watchdog(struct hrtimer *timer)
>> {
>> 	struct qdisc_watchdog *wd = container_of(timer, struct 		
>> 						 qdisc_watchdog,
>> 						 timer);
>>
>> 	rcu_read_lock();
>> 	qdisc_unthrottled(wd->qdisc);
>> 	__netif_schedule(qdisc_root(wd->qdisc));
>> 	rcu_read_unlock();
>>
>> 	return HRTIMER_NORESTART;
>> }
>>
>
> Normally, HRTIMER handlers are run under softirq.
>

Right, so I'll change the qdisc_root() usage to rcu_dereference_rtnl().

> Anyway you could simply use following on your builds
>
> CONFIG_PROVE_RCU=y
>

I've been doing this although I haven't checked the output on this
series for a bit and I missed a few places that need to be wrapped
with rtnl_dereference() in the tcf_* code.

Thanks!

-- 
John Fastabend         Intel Corporation