|
[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 |