forked from Minki/linux
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>
This commit is contained in:
parent
7748dbfaa0
commit
637c366340
16
ipc/shm.c
16
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;
|
||||
|
||||
|
19
ipc/util.c
19
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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user