Hello, Lai.

On Sun, Mar 10, 2013 at 06:09:28PM +0800, Lai Jiangshan wrote:
> >  #define for_each_pwq(pwq, wq)                                              
> > \
> > -   list_for_each_entry((pwq), &(wq)->pwqs, pwqs_node)
> > +   list_for_each_entry_rcu((pwq), &(wq)->pwqs, pwqs_node)          \
> > +           if (({ assert_rcu_or_wq_lock(); true; }))
> 
> Aware this:
> 
> if (somecondition)
>       for_each_pwq(pwq, wq)
>               one_statement;q
> else
>       xxxxx;
> 
> 
> for_each_pwq() will eat the else.

Yeah, but that will also generate a compiler warning.

> To avoid this, you can use:
> 
> #define for_each_pwq(pwq, wq)                                         \
>       list_for_each_entry_rcu((pwq), &(wq)->pwqs, pwqs_node)          \
>               if (({ assert_rcu_or_wq_lock(); false; })) { }          \
>               else
> 
> 
> The same for for_each_pool() in later patch.

Ooh, yeah, that's better.  Will do that.

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to