In the function rcu_lock_domain_by_id there is a call to rcu_read_unlock just prior to returning. However, the intent is that the rcu reader retain the read lock after the call has returned. This can be verified by auditing the callers of this routine, which each explicitly call rcu_unlock_domain, which in turn calls rcu_read_unlock. -- Remove redundant call to rcu_read_unlock. signed-off-by: Mike D. Day <ncmike@us.ibm.com> diff -r 6ee683d1b61f xen/common/domain.c --- a/xen/common/domain.c Wed Mar 28 15:31:17 2007 +0100 +++ b/xen/common/domain.c Wed Mar 28 14:43:13 2007 -0400 @@ -252,8 +252,6 @@ struct domain *rcu_lock_domain_by_id(dom return d; } - rcu_read_unlock(&domlist_read_lock); - return NULL; } -- Mike D. Day IBM LTC Cell: 919 412-3900 Sametime: ncmike@us.ibm.com AIM: ncmikeday Yahoo: ultra.runner PGP key: http://www.ncultra.org/ncmike/pubkey.asc _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2007-Mar-28 19:22 UTC
Re: [Xen-devel] [PATCH] remove redundant rcu_read_unlock
On 28/3/07 20:06, "Mike D. Day" <ncmike@us.ibm.com> wrote:> In the function rcu_lock_domain_by_id there is a call to > rcu_read_unlock just prior to returning. However, the intent is that > the rcu reader retain the read lock after the call has returned. This > can be verified by auditing the callers of this routine, which each > explicitly call rcu_unlock_domain, which in turn calls > rcu_read_unlock. > > -- > Remove redundant call to rcu_read_unlock.It''s not redundant -- that''s the error path (returning NULL). Callers do not call the unlock function in this case. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel