[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 1/5] common: don't (kind of) open-code rcu_lock_domain_by_any_id()
Even more so when using rcu_lock_domain_by_id() in place of the more efficient rcu_lock_current_domain(). Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- Besides get_pg_owner(), gnttab_copy_lock_domain() has similar strange(?) behavior: They accept DOMID_SELF, but not the resolved ID of the caller. --- v4: New. --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -353,10 +353,7 @@ static int evtchn_bind_interdomain(evtch evtchn_port_t rport = bind->remote_port; domid_t rdom = bind->remote_dom; - if ( rdom == DOMID_SELF ) - rdom = current->domain->domain_id; - - if ( (rd = rcu_lock_domain_by_id(rdom)) == NULL ) + if ( (rd = rcu_lock_domain_by_any_id(rdom)) == NULL ) return -ESRCH; write_lock(&ld->event_lock); --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -2568,12 +2568,6 @@ struct domain *get_pg_owner(domid_t domi { struct domain *pg_owner = NULL, *curr = current->domain; - if ( likely(domid == DOMID_SELF) ) - { - pg_owner = rcu_lock_current_domain(); - goto out; - } - if ( unlikely(domid == curr->domain_id) ) { gdprintk(XENLOG_WARNING, "Cannot specify itself as foreign domain\n"); @@ -2591,7 +2585,7 @@ struct domain *get_pg_owner(domid_t domi break; default: - if ( (pg_owner = rcu_lock_domain_by_id(domid)) == NULL ) + if ( (pg_owner = rcu_lock_domain_by_any_id(domid)) == NULL ) gdprintk(XENLOG_WARNING, "Unknown domain d%d\n", domid); break; }
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |