[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 12/15] tmem: cleanup: drop useless functions from head file
They are several one line functions in tmem_xen.h which are useless, this patch embeded them into tmem.c directly. Also modify void *tmem in struct domain to struct client *tmem_client in order to make things more straightforward. Signed-off-by: Bob Liu <bob.liu@xxxxxxxxxx> --- xen/common/domain.c | 4 ++-- xen/common/tmem.c | 24 ++++++++++++------------ xen/include/xen/sched.h | 2 +- xen/include/xen/tmem_xen.h | 30 +----------------------------- 4 files changed, 16 insertions(+), 44 deletions(-) diff --git a/xen/common/domain.c b/xen/common/domain.c index 2cbc489..2636fc9 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -528,9 +528,9 @@ int domain_kill(struct domain *d) spin_barrier(&d->domain_lock); evtchn_destroy(d); gnttab_release_mappings(d); - tmem_destroy(d->tmem); + tmem_destroy(d->tmem_client); domain_set_outstanding_pages(d, 0); - d->tmem = NULL; + d->tmem_client = NULL; /* fallthrough */ case DOMDYING_dying: rc = domain_relinquish_resources(d); diff --git a/xen/common/tmem.c b/xen/common/tmem.c index abc9053..6296869 100644 --- a/xen/common/tmem.c +++ b/xen/common/tmem.c @@ -1093,7 +1093,7 @@ static struct client *client_create(domid_t cli_id) goto fail; } if ( !d->is_dying ) { - d->tmem = client; + d->tmem_client = client; client->domain = d; } rcu_unlock_domain(d); @@ -1209,7 +1209,7 @@ obj_unlock: static int tmem_evict(void) { - struct client *client = tmem_client_from_current(); + struct client *client = current->domain->tmem_client; struct tmem_page_descriptor *pgp = NULL, *pgp2, *pgp_del; struct tmem_object_root *obj; struct tmem_pool *pool; @@ -1617,7 +1617,7 @@ static int do_tmem_get(struct tmem_pool *pool, struct oid *oidp, uint32_t index, list_del(&pgp->us.client_eph_pages); list_add_tail(&pgp->us.client_eph_pages,&client->ephemeral_page_list); spin_unlock(&eph_lists_spinlock); - obj->last_client = tmem_get_cli_id_from_current(); + obj->last_client = current->domain->domain_id; } } if ( obj != NULL ) @@ -1682,7 +1682,7 @@ out: static int do_tmem_destroy_pool(uint32_t pool_id) { - struct client *client = tmem_client_from_current(); + struct client *client = current->domain->tmem_client; struct tmem_pool *pool; if ( client->pools == NULL ) @@ -1713,7 +1713,7 @@ static int do_tmem_new_pool(domid_t this_cli_id, int i; if ( this_cli_id == TMEM_CLI_ID_NULL ) - cli_id = tmem_get_cli_id_from_current(); + cli_id = current->domain->domain_id; else cli_id = this_cli_id; tmem_client_info("tmem: allocating %s-%s tmem pool for %s=%d...", @@ -1754,7 +1754,7 @@ static int do_tmem_new_pool(domid_t this_cli_id, } else { - client = tmem_client_from_current(); + client = current->domain->tmem_client; ASSERT(client != NULL); for ( d_poolid = 0; d_poolid < MAX_POOLS_PER_DOMAIN; d_poolid++ ) if ( client->pools[d_poolid] == NULL ) @@ -2192,7 +2192,7 @@ static int do_tmem_control(struct tmem_op *op) uint32_t subop = op->u.ctrl.subop; struct oid *oidp = (struct oid *)(&op->u.ctrl.oid[0]); - if (!tmem_current_is_privileged()) + if ( xsm_tmem_control(XSM_PRIV) ) return -EPERM; switch(subop) @@ -2264,7 +2264,7 @@ static int do_tmem_control(struct tmem_op *op) long do_tmem_op(tmem_cli_op_t uops) { struct tmem_op op; - struct client *client = tmem_client_from_current(); + struct client *client = current->domain->tmem_client; struct tmem_pool *pool = NULL; struct oid *oidp; int rc = 0; @@ -2273,10 +2273,10 @@ long do_tmem_op(tmem_cli_op_t uops) if ( !tmem_initialized ) return -ENODEV; - if ( !tmem_current_permitted() ) + if ( xsm_tmem_op(XSM_HOOK) ) return -EPERM; - if ( client != NULL && tmem_client_is_dying(client) ) + if ( client != NULL && client->domain->is_dying ) return -ENODEV; if ( unlikely(tmem_get_tmemop_from_client(&op, uops) != 0) ) @@ -2310,7 +2310,7 @@ long do_tmem_op(tmem_cli_op_t uops) { write_lock(&tmem_rwlock); write_lock_set = 1; - if ( (client = client_create(tmem_get_cli_id_from_current())) == NULL ) + if ( (client = client_create(current->domain->domain_id)) == NULL ) { tmem_client_err("tmem: can't create tmem structure for %s\n", tmem_client_str); @@ -2392,7 +2392,7 @@ void tmem_destroy(void *v) if ( client == NULL ) return; - if ( !tmem_client_is_dying(client) ) + if ( !client->domain->is_dying ) { printk("tmem: tmem_destroy can only destroy dying client\n"); return; diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index cbdf377..53ad32f 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -400,7 +400,7 @@ struct domain spinlock_t hypercall_deadlock_mutex; /* transcendent memory, auto-allocated on first tmem op by each domain */ - void *tmem; + struct client *tmem_client; struct lock_profile_qhead profile_head; diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h index 101c5b6..6cd4370 100644 --- a/xen/include/xen/tmem_xen.h +++ b/xen/include/xen/tmem_xen.h @@ -171,45 +171,17 @@ static inline unsigned long tmem_free_mb(void) /* "Client" (==domain) abstraction */ -struct client; static inline struct client *tmem_client_from_cli_id(domid_t cli_id) { struct client *c; struct domain *d = rcu_lock_domain_by_id(cli_id); if (d == NULL) return NULL; - c = (struct client *)(d->tmem); + c = d->tmem_client; rcu_unlock_domain(d); return c; } -static inline struct client *tmem_client_from_current(void) -{ - return (struct client *)(current->domain->tmem); -} - -#define tmem_client_is_dying(_client) (!!_client->domain->is_dying) - -static inline domid_t tmem_get_cli_id_from_current(void) -{ - return current->domain->domain_id; -} - -static inline struct domain *tmem_get_cli_ptr_from_current(void) -{ - return current->domain; -} - -static inline bool_t tmem_current_permitted(void) -{ - return !xsm_tmem_op(XSM_HOOK); -} - -static inline bool_t tmem_current_is_privileged(void) -{ - return !xsm_tmem_control(XSM_PRIV); -} - static inline uint8_t tmem_get_first_byte(struct page_info *pfp) { const uint8_t *p = __map_domain_page(pfp); -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |