mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-13 20:33:15 +00:00
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))
|
((struct shmid_kernel*)ipc_lock(&shm_ids(ns),id))
|
||||||
#define shm_unlock(shp) \
|
#define shm_unlock(shp) \
|
||||||
ipc_unlock(&(shp)->shm_perm)
|
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) \
|
#define shm_buildid(ns, id, seq) \
|
||||||
ipc_buildid(&shm_ids(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 shmid_kernel *shp;
|
||||||
struct inode *inode;
|
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)
|
if (shp == NULL)
|
||||||
continue;
|
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;
|
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 *ipc_lock(struct ipc_ids *ids, int id)
|
||||||
{
|
{
|
||||||
struct kern_ipc_perm *out;
|
struct kern_ipc_perm *out;
|
||||||
|
@ -103,7 +103,6 @@ void* ipc_rcu_alloc(int size);
|
|||||||
void ipc_rcu_getref(void *ptr);
|
void ipc_rcu_getref(void *ptr);
|
||||||
void ipc_rcu_putref(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);
|
struct kern_ipc_perm* ipc_lock(struct ipc_ids* ids, int id);
|
||||||
void ipc_lock_by_ptr(struct kern_ipc_perm *ipcp);
|
void ipc_lock_by_ptr(struct kern_ipc_perm *ipcp);
|
||||||
void ipc_unlock(struct kern_ipc_perm* perm);
|
void ipc_unlock(struct kern_ipc_perm* perm);
|
||||||
|
Loading…
Reference in New Issue
Block a user