Re: [PATCH] PM / OPP: Implement free_opp_table function

From: Viresh Kumar
Date: Fri May 16 2014 - 13:11:55 EST


On 16 May 2014 22:38, Inderpal Singh <inderpal.s@xxxxxxxxxxx> wrote:
>>> + while (!list_empty(&dev_opp->opp_list)) {
>>> + opp = list_entry_rcu(dev_opp->opp_list.next,
>>> + struct dev_pm_opp, node);
>>
>> list_for_each_entry_rcu ?
>>
>
> list_for_each_entry_rcu can not be used as opp is being deleted in the loop.

So what? The above code can be replaced easily I think.
This is how it is implemented:

#define list_for_each_entry_rcu(pos, head, member) \
for (pos = list_entry_rcu((head)->next, typeof(*pos), member); \
&pos->member != (head); \
pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/