aboutsummaryrefslogtreecommitdiffstats
path: root/ipc/shm.c
diff options
context:
space:
mode:
authorNadia Derbey <Nadia.Derbey@bull.net>2007-10-19 02:40:50 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-19 14:53:44 -0400
commit637c36634029e4e7c81112796dafc32d56355b4a (patch)
treeb30106d838864fe6c8ba97c7dc68304b820e7694 /ipc/shm.c
parent7748dbfaa010b12d5fb9ddf80199534c565c6bce (diff)
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 <Nadia.Derbey@bull.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc/shm.c')
-rw-r--r--ipc/shm.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/ipc/shm.c b/ipc/shm.c
index d20cc25c5bdf..8cf1cf3d5bec 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -63,8 +63,6 @@ static struct ipc_ids init_shm_ids;
63 ((struct shmid_kernel*)ipc_lock(&shm_ids(ns),id)) 63 ((struct shmid_kernel*)ipc_lock(&shm_ids(ns),id))
64#define shm_unlock(shp) \ 64#define shm_unlock(shp) \
65 ipc_unlock(&(shp)->shm_perm) 65 ipc_unlock(&(shp)->shm_perm)
66#define shm_get(ns, id) \
67 ((struct shmid_kernel*)ipc_get(&shm_ids(ns),id))
68#define shm_buildid(ns, id, seq) \ 66#define shm_buildid(ns, id, seq) \
69 ipc_buildid(&shm_ids(ns), id, seq) 67 ipc_buildid(&shm_ids(ns), id, seq)
70 68
@@ -563,7 +561,19 @@ static void shm_get_stat(struct ipc_namespace *ns, unsigned long *rss,
563 struct shmid_kernel *shp; 561 struct shmid_kernel *shp;
564 struct inode *inode; 562 struct inode *inode;
565 563
566 shp = shm_get(ns, next_id); 564 /*
565 * idr_find() is called via shm_get(), so with shm_ids.mutex
566 * locked. Since ipc_addid() is also called with
567 * shm_ids.mutex down, there is no need to add read barriers
568 * here to gurantee the writes in ipc_addid() are seen in
569 * order here (for Alpha).
570 * However idr_find() itself does not necessary require
571 * ipc_ids.mutex down. So if idr_find() is used by other
572 * places without ipc_ids.mutex down, then it needs read
573 * read memory barriers as ipc_lock() does.
574 */
575
576 shp = idr_find(&shm_ids(ns).ipcs_idr, next_id);
567 if (shp == NULL) 577 if (shp == NULL)
568 continue; 578 continue;
569 579