From: Nadia Derbey Date: Fri, 19 Oct 2007 06:40:50 +0000 (-0700) Subject: ipc: remove the ipc_get() routine X-Git-Tag: v2.6.24-rc1~169 X-Git-Url: http://ftp.safe.ca/?p=safe%2Fjmp%2Flinux-2.6;a=commitdiff_plain;h=637c36634029e4e7c81112796dafc32d56355b4a;hp=7748dbfaa010b12d5fb9ddf80199534c565c6bce ipc: remove the ipc_get() routine This is a trivial patch that removes the ipc_get() routine: it is replaced by a call to idr_find(). Signed-off-by: Nadia Derbey Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/ipc/shm.c b/ipc/shm.c index d20cc25..8cf1cf3 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -63,8 +63,6 @@ static struct ipc_ids init_shm_ids; ((struct shmid_kernel*)ipc_lock(&shm_ids(ns),id)) #define shm_unlock(shp) \ ipc_unlock(&(shp)->shm_perm) -#define shm_get(ns, id) \ - ((struct shmid_kernel*)ipc_get(&shm_ids(ns),id)) #define shm_buildid(ns, id, seq) \ ipc_buildid(&shm_ids(ns), id, seq) @@ -563,7 +561,19 @@ static void shm_get_stat(struct ipc_namespace *ns, unsigned long *rss, struct shmid_kernel *shp; struct inode *inode; - shp = shm_get(ns, next_id); + /* + * idr_find() is called via shm_get(), so with shm_ids.mutex + * locked. Since ipc_addid() is also called with + * shm_ids.mutex down, there is no need to add read barriers + * here to gurantee the writes in ipc_addid() are seen in + * order here (for Alpha). + * However idr_find() itself does not necessary require + * ipc_ids.mutex down. So if idr_find() is used by other + * places without ipc_ids.mutex down, then it needs read + * read memory barriers as ipc_lock() does. + */ + + shp = idr_find(&shm_ids(ns).ipcs_idr, next_id); if (shp == NULL) continue; diff --git a/ipc/util.c b/ipc/util.c index 03b8879..e72865f 100644 --- a/ipc/util.c +++ b/ipc/util.c @@ -669,25 +669,6 @@ void ipc64_perm_to_ipc_perm (struct ipc64_perm *in, struct ipc_perm *out) out->seq = in->seq; } -/* - * So far only shm_get_stat() calls ipc_get() via shm_get(), so ipc_get() - * is called with shm_ids.mutex locked. Since grow_ary() is also called with - * shm_ids.mutex down(for Shared Memory), there is no need to add read - * barriers here to gurantee the writes in grow_ary() are seen in order - * here (for Alpha). - * - * However ipc_get() itself does not necessary require ipc_ids.mutex down. So - * if in the future ipc_get() is used by other places without ipc_ids.mutex - * down, then ipc_get() needs read memery barriers as ipc_lock() does. - */ -struct kern_ipc_perm *ipc_get(struct ipc_ids *ids, int id) -{ - struct kern_ipc_perm *out; - int lid = id % SEQ_MULTIPLIER; - out = idr_find(&ids->ipcs_idr, lid); - return out; -} - struct kern_ipc_perm *ipc_lock(struct ipc_ids *ids, int id) { struct kern_ipc_perm *out; diff --git a/ipc/util.h b/ipc/util.h index 30b2a6d..1546eda 100644 --- a/ipc/util.h +++ b/ipc/util.h @@ -103,7 +103,6 @@ void* ipc_rcu_alloc(int size); void ipc_rcu_getref(void *ptr); void ipc_rcu_putref(void *ptr); -struct kern_ipc_perm* ipc_get(struct ipc_ids* ids, int id); struct kern_ipc_perm* ipc_lock(struct ipc_ids* ids, int id); void ipc_lock_by_ptr(struct kern_ipc_perm *ipcp); void ipc_unlock(struct kern_ipc_perm* perm);