All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ying Xue <ying.xue@windriver.com>
To: <paulmck@linux.vnet.ibm.com>
Cc: <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] rculist: Fix another sparse warning
Date: Thu, 26 Mar 2015 13:19:40 +0800	[thread overview]
Message-ID: <551396EC.4010806@windriver.com> (raw)
In-Reply-To: <20150325134929.GY5718@linux.vnet.ibm.com>

On 03/25/2015 09:49 PM, Paul E. McKenney wrote:
> On Wed, Mar 25, 2015 at 12:43:38PM +0800, Ying Xue wrote:
>> This fixes the following sparse warnings:
>>
>> make C=1 CF=-D__CHECK_ENDIAN__ net/tipc/name_table.o
>> net/tipc/name_table.c:977:17: error: incompatible types in comparison expression (different address spaces)
>> net/tipc/name_table.c:977:17: error: incompatible types in comparison expression (different address spaces)
>>
>> To silence these spare complaints, an RCU annotation should be added to
>> "next" pointer of hlist_node structure through hlist_next_rcu() macro
>> when iterating over a hlist with hlist_for_each_entry_from_rcu().
>>
>> Signed-off-by: Ying Xue <ying.xue@windriver.com>
> 
> If hlist_for_each_entry_from_rcu() is to use rcu_dereference_bh(), then
> it needs to be named hlist_for_each_entry_from_rcu_bh().  If we want
> to retain the generic nature, rcu_dereference_raw() would work.
> 
> (Otherwise, we would get splats if this was used under rcu_read_lock()
> rather than rcu_read_lock_bh().)
> 

Yes, you are absolutely right. Thanks to point out my mistake.
I will fix it in next version.

Regards,
Ying

> 							Thanx, Paul
> 
>> ---
>>  include/linux/rculist.h |    4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/linux/rculist.h b/include/linux/rculist.h
>> index a18b16f..18a3f15 100644
>> --- a/include/linux/rculist.h
>> +++ b/include/linux/rculist.h
>> @@ -549,8 +549,8 @@ static inline void hlist_add_behind_rcu(struct hlist_node *n,
>>   */
>>  #define hlist_for_each_entry_from_rcu(pos, member)			\
>>  	for (; pos;							\
>> -	     pos = hlist_entry_safe(rcu_dereference((pos)->member.next),\
>> -			typeof(*(pos)), member))
>> +	     pos = hlist_entry_safe(rcu_dereference_bh(hlist_next_rcu(	\
>> +			&(pos)->member)), typeof(*(pos)), member))
>>
>>  #endif	/* __KERNEL__ */
>>  #endif
>> -- 
>> 1.7.9.5
>>
> 
> 
> 


      reply	other threads:[~2015-03-26  5:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-25  4:43 [PATCH] rculist: Fix another sparse warning Ying Xue
2015-03-25 13:49 ` Paul E. McKenney
2015-03-26  5:19   ` Ying Xue [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=551396EC.4010806@windriver.com \
    --to=ying.xue@windriver.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.